2011-04-07 29 views
0

我正在使用org.w3c.dom api解析JavaBean中的XML文檔。TextNode的NodeName在JAVA xml解析中無法正確顯示

如果節點是ElementNode,那麼方法node.getNodeName()將返回節點的標記名。

但是,如果我在有文本內容的childnode上使用它,它不會返回標記名。但它返回節點類型,如#TextNode或#CDATA。但我也想獲得ChildNode的TagName。 我已經試過的上述三種方法返回其具有的TextContent子節點的標記名

node.getNodeName(); 
node.getNodeValue(); 
node.getTextContent(); 

無。 什麼是正確的方法?

回答

1

如果節點類型是回來爲CDATA或TextNode,然後你看節點爲文本數據 - 它不包含文本數據元素。因此,節點沒有標籤名稱 - 它不是標籤。你應該問它的父節點(其中是一個元素)並找到它的名稱。

如果沒有幫助,請張貼一些示例代碼(理想的是短,但完整控制檯應用程序,我們可以複製,粘貼,編譯和運行),你和運行它的XML,預期產出和實際產出。

0

仔細檢查xml文檔和您的代碼。您實際上正在查看文本節點或CDATA部分但不在元素

您可以通過檢查該做

if (childnode.getType != Node.ELEMENT_NODE) { 
    System.out.println("Ooops, navigation error, need to turn around"); 
} 

或添加一些調試代碼片刻

System.out.println(childnode.getClass().getName()); 
System.out.println(childnode.getParentNode().getNodeName());