Java:无法理解 XML DOM 解析器代码

标签 java xml parsing dom

我不知道为什么,但我很难理解 XML DOM 解析,并且想知道是否有人可以帮助我理解代码。目前我有以下 XML 文件内容:

<environment>
  <gravity direction="90" magnitude="20"/>
  <viscosity magnitude="0.8"/>
  <centermass magnitude="100" exponent="2.0"/>
  <wall id="1" magnitude="40" exponent="1.5"/>
  <wall id="2" magnitude="50" exponent="2.0"/>
  <wall id="3" magnitude="180" exponent="1.0"/>
  <wall id="4" magnitude="10" exponent="0.0"/>
</environment>

这是我根据不同教程编译的 Java 类,但在尝试从各个节点(如重力、粘度等)提取值时遇到了困难。

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

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

import java.io.*;

public class XMLParser{

    public static void main(String[] args) {
        try {

            File environment = new File("environment.xml");
            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
            Document doc = dBuilder.parse(environment);
            doc.getDocumentElement().normalize();

            System.out.println("Root element: " + doc.getDocumentElement().getNodeName());

            NodeList nodes = doc.getElementsByTagName("environment");

            for (int i = 0; i < nodes.getLength(); i++) {
                Node node = nodes.item(i);
                if (node.getNodeType() == Node.ELEMENT_NODE) {
                    Element element = (Element) node;

// I don't think I need to loop through nodes because I only have one environment node, but I've kept it there to deal with general cases. Then node contains the child nodes I would like to extract data from, such as gravity, viscosity, etc, but I'm not sure quite how to do it. 
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

抱歉,帖子很长,感谢您的帮助!

最佳答案

因此,您将在循环中查看的一个节点将是根元素节点。迭代其子节点,它们将是您感兴趣的实际节点。您可以像访问根元素一样执行此操作。您也可以轻松地在谷歌上搜索有关此内容的教程:

http://www.mkyong.com/java/how-to-read-xml-file-in-java-dom-parser/

关于Java:无法理解 XML DOM 解析器代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18778619/

相关文章:

用 C 创建一个简单的配置文件和解析器

java - 如果字符串中的所有字母都相同,则尝试返回 true

java - 运行 java exec 命令,总是需要应用程序的完整绝对路径?

java - 在 javax.xml.transform.Transformer 中处理原始文本

java - 如何将xml文件数据添加到ArangoDb中?

c++ - 将 Spirit int boost 为字符串规则

java - 压缩 hadoop mapreduce 输出的最简单有效的方法

java - Dropwizard 编程端点

sql-server - 从 SQL Server 中的 xml 字段中选择日期列表

parsing - Haskell - Parsec 与状态