DOM解析XML

冷不防 2022-08-06 11:05 315阅读 0赞

XML可以作为一种的简单数据存储。

DOM解析,是将XML中的数据组织成一棵树,树的一个一个节点就是XML文档中的数据。

DOM解析XML流程:

1.建立一个解析器工厂,将来创建解析器。

2.创建XML解析器。

3.创建DOM文档对象,设置doc路径。

4.使用DOM文档对象获取节点列表。

5.将节点列表中的每一个子节点分配给一个节点对象。

6.获取节点的内容。

XML信息:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <pet>
  3. <dog id="1">
  4. <name>yaya</name>
  5. <health>100</health>
  6. <love>90</love>
  7. </dog>
  8. <dog id="2">
  9. <name>ouuu</name>
  10. <health>99</health>
  11. <love>100</love>
  12. </dog>
  13. </pet>

DOM解析代码:

  1. package example.test;
  2. import java.io.IOException;
  3. import javax.xml.parsers.DocumentBuilder;
  4. import javax.xml.parsers.DocumentBuilderFactory;
  5. import javax.xml.parsers.ParserConfigurationException;
  6. import org.w3c.dom.Document;
  7. import org.w3c.dom.Node;
  8. import org.w3c.dom.NodeList;
  9. import org.xml.sax.SAXException;
  10. public class DomTest {
  11. public static void main(String[] args) {
  12. DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  13. try {
  14. DocumentBuilder db = dbf.newDocumentBuilder();
  15. Document doc = db
  16. .parse("C:/Users/Administrator/workspace/Test/src/pet.xml");
  17. NodeList nodelist = doc.getElementsByTagName("dog");
  18. System.out.println("xml初始化信息为:");
  19. for (int i = 0; i < nodelist.getLength(); i++) {
  20. Node pet = nodelist.item(i);
  21. for (Node node = pet.getFirstChild(); node != null; node = node
  22. .getNextSibling()) {
  23. if (node.getNodeType() == Node.ELEMENT_NODE) {
  24. String name = node.getNodeName();
  25. String value = node.getFirstChild().getNodeValue();
  26. System.out.println(name);
  27. System.out.println(value);
  28. }
  29. }
  30. }
  31. } catch (ParserConfigurationException e) {
  32. // TODO Auto-generated catch block
  33. e.printStackTrace();
  34. } catch (SAXException e) {
  35. // TODO Auto-generated catch block
  36. e.printStackTrace();
  37. } catch (IOException e) {
  38. // TODO Auto-generated catch block
  39. e.printStackTrace();
  40. }
  41. }
  42. }

上面应该注意的一点是获取节点内容的时候

  1. String value = node.getFirstChild().getNodeValue();

为什么会有getFirstChild()这个方法呢,因为XML也把yaya中的“yaya”当作节点元素,所以要先获取这个节点。

发表评论

表情:
评论列表 (有 0 条评论,315人围观)

还没有评论,来说两句吧...

相关阅读

    相关 DOM解析XML

    XML 结构是一种树型结构,处理步骤都差不多,Java 己经将它们封装成了现成的类库。目前流行的解析方法有三种,分别为 DOM、SAS 和 DOM4j。 DOM(Docume

    相关 DOM解析XML

    XML可以作为一种的简单数据存储。 DOM解析,是将XML中的数据组织成一棵树,树的一个一个节点就是XML文档中的数据。 DOM解析XML流程: 1.建立一个解析器工厂,

    相关 DOM解析XML

    XML 结构是一种树型结构,处理步骤都差不多,Java 己经将它们封装成了现成的类库。目前流行的解析方法有三种,分别为 DOM、SAS 和 DOM4j。 DOM(Docu...