2011-04-06 91 views
0

我試圖獲取XML文檔的文本節點的標記名時遇到了一個異常。如何獲取XML文本節點的TagName和TextContent?

我想獲取一個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

要解決您的問題,您可以使用SAX解析器。