如何获取XML textNode的TagName和TextContent?

时间:2011-04-06 12:51:34

标签: java xml-parsing

我在尝试获取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>

我该如何解决这个问题?感谢

1 个答案:

答案 0 :(得分:1)

要解决您的问题,您可以使用SAX解析器。