在Java中处理XML文件,节点混淆

在Java中处理XML文件,节点混淆,java,xml,dom,nodes,child-nodes,Java,Xml,Dom,Nodes,Child Nodes,我正在尝试用Java解析XML文件,它工作得很好,但我不知道为什么。我有以下代码(我只是剪掉了一些重要的东西): 我在一个已找到的节点上调用项(0),但实际上它是什么 我真的很感激你的帮助,我是一个初学者,我正在努力与它有一段时间了。发布一步一步指南列出了我的XML的某些部分,这对我来说意味着一个世界 为什么调用nodeList.getLength()时有9个节点 这9个节点是: 第1页 第四 4之间的一切 其他5个是文本节点,但我没有真正了解它们是什么 什么是builder,什么是docum

我正在尝试用Java解析XML文件,它工作得很好,但我不知道为什么。我有以下代码(我只是剪掉了一些重要的东西):

我在一个已找到的节点上调用项(0),但实际上它是什么

我真的很感激你的帮助,我是一个初学者,我正在努力与它有一段时间了。发布一步一步指南列出了我的XML的某些部分,这对我来说意味着一个世界

为什么调用nodeList.getLength()时有9个节点

这9个节点是:

第1页
第四
4之间的一切

其他5个是文本节点,但我没有真正了解它们是什么



什么是
builder
,什么是
document
?对不起,我添加了相关行。谢谢@ThisClark,这一点现在很清楚了,我注意到还有一件事没有使用它:
(elem.getElementsByTagName(“Score”).item(0.getChildNodes().item(0.getNodeValue());)我可以使用:
(elem.getElementsByTagName(“Score”).item(0.getTextContent());)并且它可以工作。还可以吗?如果它能满足你的需要,那就完全可以了。如果您正在寻找更好的使用XML的方法,那么您必须阅读更多关于该主题的内容,并练习不同的方法,直到您感到更舒服为止。看看SAX和StAX中的实现。
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();

Document document = builder.parse(new File(fileName));

NodeList nodeList = document.getDocumentElement().getChildNodes();

for (int i = 0; i < nodeList.getLength(); i++)
  {
   Node node = nodeList.item(i);

   if (node.getNodeType() == Node.ELEMENT_NODE) {
   Element elem = (Element) node;

   // Get the value of all sub-elements.
   String original = elem.getElementsByTagName("Original")
         .item(0).getChildNodes().item(0).getNodeValue();

   String translation = elem.getElementsByTagName("Translation").item(0)
         .getChildNodes().item(0).getNodeValue();

   Integer score = Integer.parseInt(elem.getElementsByTagName("Score")
         .item(0).getChildNodes().item(0).getNodeValue());
}
<?xml version="1.0" encoding="UTF-8"?>
    <Dictionary>
         <Word>
              <Original>die Unterwäsche</Original >
              <Translation>Bielizna</Translation>
              <Score>-4</Score>
         </Word>
         <Word>
              <Original>die Müche</Original>
              <Translation>Fatyga, trud</Translation>
              <Score>0</Score>
         </Word>
         <Word>
              <Original>wetten</Original>
              <Translation>założyć się</Translation>
              <Score>-6</Score>
         </Word>
         <Word>
              <Original>umsonst</Original>
              <Translation>Bez powodu</Translation>
              <Score>0</Score>
         </Word>
    </Dictionary>
elem.getElementsByTagName("Score")
         .item(0).getChildNodes().item(0).getNodeValue());
<?xml version="1.0" encoding="UTF-8"?>
<Dictionary>                         <-- null text
    <Word>                           <-- null text
        <Original>...
        <Translation>...
        <Score>...
    </Word>
    <Word>                           <-- null text
        <Original>...
        <Translation>...
        <Score>...
    </Word>
    <Word>                           <-- null text
        <Original>...
        <Translation>...
        <Score>...
    </Word>
    <Word>                           <-- null text
        <Original>...
        <Translation>...
        <Score>...
    </Word>
</Dictionary>