檢索空值有一個XML如下我如何從XML節點
<Element>
<Name>srmgmtaddress</Name>
<Value>10.133.14.19</Value>
</Element>
<Element>
<Name>crlbif0</Name>
<Value/>
</Element>
<Element>
<Name>srseid.srtype</Name>
<Value>Cisco c7206VXR</Value>
</Element>
<Element>
<Name>craddressinterim</Name>
<Value/>
</Element>
<Element>
<Name>crvrfinterim</Name>
<Value/>
</Element>
我要檢索的元素的值和我使用XPath表達式//ResponseItem/Object/Element/Value/text()
其中的ResponseItem和對象兩個頂層節點。
這正常工作與下面的代碼:
ArrayList<String> elementsToFetch = new ArrayList<String>(Arrays.asList("//ResponseItem/Object/Element/Name/text()","//ResponseItem/Object/Element/Value/text()"));
for (String n : elementsToFetch) {
XPathFactory xPathfactory1 = XPathFactory.newInstance();
XPath xpath1 = xPathfactory1.newXPath();
XPathExpression expr1 = xpath1.compile(n);
NodeList nl = (NodeList) expr1.evaluate(doc1, XPathConstants.NODESET);
for (int i=0;i<nl.getLength();i++) {
String nodeval = nl.item(i).getNodeValue();
//...SOME CODE HERE
}
}
但我也想在「crlbif0」檢索空XML節點值,「craddressinterim」等爲NULL或「」。
現在我得到的名單如下,其中空節點是沒有得到處理
[CRNdNode_RO:1024, chn-pe2-rt02, 10.133.14.19, Cisco c7206VXR, CRNdNode_RO:1037, chn-pe4-rt04, 10.133.14.6, Cisco c7609 ...]
我想要的清單,
[CRNdNode_RO:1024, chn-pe2-rt02, 10.133.14.19, "", Cisco c7206VXR, "", "", CRNdNode_RO:1037, chn-pe4-rt04, 10.133.14.6, "", Cisco c7609, "", "",....]
在這方面的任何幫助將不勝感激。
你試過像'//的ResponseItem /對象/元/名稱/../值/文本() '?基本上你想要找到'Name'節點並取其父節點並從中取出'Value'子節點。 – OldCurmudgeon 2013-03-13 09:27:59