我在尝试获取XML文档的textnode的标记名时遇到了一个例外。
我想获取一个XML文件的所有节点元素的tagName和TextContent。
NodeList nList = doc.getElementsByTagName("RESOURCE_INFO");
NodeList head = nList.item(0).getChildNodes();
for(int j=0;j<head.getLength();j++){
String p=head.item(j).getNodeName();
String p=head.item(j).getNodeValue();
String v=head.item(j).getTextContent();
}
但是从上面的任何一个我都无法得到TagName。所以改变了这样的代码..
String p=((Element)head.item(j)).getTagName();
即使它已编译,也会产生运行时错误。
SEVERE: java.lang.ClassCastException: org.apache.xerces.dom.DeferredTextImpl cannot be cast to org.w3c.dom.Element
这是XML文档
<TOTALRESOURCES>
<RESOURCE_INFO>
<HEADNODE>
<HOST_NAME>xencluster</HOST_NAME>
<HYPER_TYPE>XEN</HYPER_TYPE>
<DOMAIN_COUNT>1</DOMAIN_COUNT>
<TOTAL_MEM_MB>1015</TOTAL_MEM_MB>
<TOTALNODES>6</TOTALNODES>
<FREENODES>2</FREENODES>
</HEADNODE>
<COMPUTENODE>
<HOST_NAME>xencluster</HOST_NAME>
<HYPER_TYPE>XEN</HYPER_TYPE>
<DOMAIN_COUNT>1</DOMAIN_COUNT>
<TOTAL_MEM_MB>1015</TOTAL_MEM_MB>
<COMPUTENODE>
<COMPUTENODE>
<HOST_NAME>xencluster2</HOST_NAME>
<HYPER_TYPE>XEN</HYPER_TYPE>
<DOMAIN_COUNT>2</DOMAIN_COUNT>
<TOTAL_MEM_MB>1015</TOTAL_MEM_MB>
<COMPUTENODE>
</RESOURCE_INFO>
</TOTALRESOURCES>
我该如何解决这个问题?感谢
答案 0 :(得分:1)
要解决您的问题,您可以使用SAX解析器。