java http xml java通过http来访问一个xml文件的读取过程

这篇博客展示了如何使用Java通过HTTP请求获取XML文件,并利用DOM解析器解析XML内容,提取特定元素如Vulinfo、ID、Title、Description等信息的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上代码

package test;

import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class XmlController {

  public static void main(String arg[]) {
   
    InputStream is = null;
    Document document = null;
    try {
      URL url =
          new URL("http://xxxx?method=getInfo&Id=001");
      URLConnection con = url.openConnection();
      is = con.getInputStream();
      // DOM 解析器
      DocumentBuilderFactory domfac = DocumentBuilderFactory.newInstance();
      // DOM 工厂获得 DOM 解析器
      DocumentBuilder dombuilder = domfac.newDocumentBuilder();
      document = dombuilder.parse(is);

    } catch (SAXException e) {
      e.printStackTrace();
    } catch (ParserConfigurationException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();

    }
    // root要素取得
    Element elementRoot = (document).getDocumentElement();

    Element elementCount = (Element) elementRoot.getElementsByTagName("Vulinfo").item(0);

    System.out.println(elementCount.getNodeName());
    System.out.println(elementCount.getElementsByTagName("ID").item(0).getNodeName());
    System.out.println(
        elementCount.getElementsByTagName("ID").item(0).getFirstChild().getNodeValue());

    Element Data = (Element) elementCount.getElementsByTagName("Data").item(0);
    
    String title =
        eleVulinfoData.getElementsByTagName("Title").item(0).getFirstChild().getNodeValue();
    System.out.println(title);

   
    Element DescriptionData =
        (Element) eleVulinfoData.getElementsByTagName("Description").item(0);
    String Description = VulinfoDescriptionData.getElementsByTagName("Overview").item(0)
        .getFirstChild().getNodeValue();
    System.out.println(Description);

   
    Element AffectedData = (Element) eleVulinfoData.getElementsByTagName("Affected").item(0);
    Element AffectedItem = (Element) AffectedData.getElementsByTagName("AffectedItem").item(0);
    String AffectedData_Name =
        AffectedItem.getElementsByTagName("Name").item(0).getFirstChild().getNodeValue();
    System.out.println(AffectedData_Name);
    String ProductName =
        AffectedItem.getElementsByTagName("ProductName").item(0).getFirstChild().getNodeValue();
    System.out.println(ProductName);
   
    NodeList VersionNumber = elementCount.getElementsByTagName("VersionNumber");
    System.out.println(VersionNumber.getLength());
    for (int i = 0; i < VersionNumber.getLength(); i++) {
      Element elementItemName = (Element) VersionNumber.item(i);
      String itemName = elementItemName.getFirstChild().getNodeValue();
      System.out.println(itemName);
    }
 

    // History
    Element HistoryData = (Element) eleVulinfoData.getElementsByTagName("History").item(0);
    Element HistoryItem = (Element) HistoryData.getElementsByTagName("HistoryItem").item(0);
    String Description = null;
    System.out.println(HistoryItem.getElementsByTagName("Description").getLength());
    if (null != HistoryItem.getElementsByTagName("Description")
        && HistoryItem.getElementsByTagName("Description").getLength() != 0
        && null != HistoryItem.getElementsByTagName("Description").item(0).getFirstChild()) {
      Description =
          HistoryItem.getElementsByTagName("Description").item(0).getFirstChild().getNodeValue();
    }
    System.out.println(Description);

  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值