1

我是 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>
4

1 回答 1

1

元素中的文本<Type>本身就是 a Node,类型为TEXT,其值为mobile。这就是 DOM 的工作原理。此页面解释更多:http ://docs.oracle.com/javase/tutorial/jaxp/dom/when.html

于 2012-04-04T15:16:05.990 回答