【问题标题】:Difference between Element::textContent and NodeList::item::getNodeValueElement::textContent 和 NodeList::item::getNodeValue 之间的区别
【发布时间】:2012-04-04 14:35:17
【问题描述】:

我是 XML 新手,并且有一个带有根标签和子标签的 XML 文件。对于子标签名称“Phone”之一,我使用 DOM API 在 Java 中进行了以下实现。我的问题是代码的最后两行打印相同的结果。在一种情况下,我使用 Element 检索内容,在另一种情况下,它由 NodeList 函数 getNodeValue 检索。

NodeList phoneNodeList = document.getElementsByTagName("Phone");
Node firstPhoneNode = phoneNodeList.item(0);
System.out.println (phoneNodeList.getLength());
Element phoneNodeElement = (Element) firstPhoneNode;
NodeList phoneList = phoneNodeElement.getElementsByTagName("Type");
Element phoneTypeElement = (Element) phoneList.item(0);
NodeList phoneType = phoneTypeElement.getChildNodes();
System.out.println ("NodeName : " + phoneTypeElement.getNodeName());
System.out.println ("Text Content : " + phoneTypeElement.getTextContent());
System.out.println ("Phone : " + phoneType.item(0).getNodeValue()); 

Phone 标签实现在 XML 中看起来像这样

<Phone>
<Type>work</Type>
<Value>2222</Value>
</Phone>

<Phone>
</Phone>

<Phone>
</Phone>

<Phone>
<Type>mobile</Type>
<Value>1111</Value>
</Phone>

【问题讨论】:

    标签: java xml xml-parsing xmldom


    【解决方案1】:

    &lt;Type&gt; 元素中的文本本身就是一个Node,类型为TEXT,值为mobile。这就是 DOM 的工作方式。此页面解释更多:http://docs.oracle.com/javase/tutorial/jaxp/dom/when.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-14
      • 1970-01-01
      • 2014-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多