2012-10-11 125 views
0

我想使用getChildText()從深度較淺的節點獲取文本。文件中有兩個名稱空間。下面的語法不起作用,並設置textToGetnull如何在XML中有多個名稱空間時使用名稱空間獲取節點的getChildText()?

String textToGet = root.getChildText("ns1:Customer/ns1:Address/ns1:Street/ns2:Streetname"); 

我知道有第一獲得子元素的替代,然後將其文本,但我想用一個班輪。

另外,寧願不要鏈getChild(),因爲一些元素不能保證在文件中。

回答

1

你不會是能夠做出一個班輪....

考慮使用的XPath .... JDOM 2.X應該幫助的是:

XPathExpression<String> xpe = XPathFactory.instance().compile(
    Filters.fstring(), "ns1:Customer/ns1:Address/ns1:Street/ns2:Streetname", 
    null, namespace_ns1, namespace_ns2); 
String textToGet = xpe.evaluateFirst(root); 

( textToGet可能爲空)

編輯時,上面的XPath表達式實際上會返回一個元素......您應該將「/ text()」添加到XPath的末尾,或將textToGet更改爲String(以及過濾器) 。

Rolf

相關問題