[英]XPath in java won't accept variable in expression
有人能對我解釋一下嗎
xPath.evaluate(“ / MEMBER_LIST / MEMBER [1] / ADDRESS”,nodeMemberList,XPathConstants.STRING)返回我要查找的值以及為什么xPath.evaluate(“ / MEMBER_LIST / MEMBER [” + i +“] / ADDRESS “,nodeMemberList,XPathConstants.STRING)返回空字符串? 我必須在for循環中執行這些操作,因此這里的“ i”是一個表示當前條目的整數。
您的for循環是否從1開始? /MEMBER_LIST/MEMBER[0]
表達式不是有效的XPath表達式,因為XPath索引從1開始。而且,訪問超出節點總數的索引也是無效的。 例如,當只有3個MEMBER
元素時,執行/MEMBER_LIST/MEMBER[5]
。
您還可以使用XPathConstants.NODESET常量。 這將返回與給定表達式匹配的所有元素的列表。 然后,您可以遍歷列表。
NodeList nodeList = (NodeList)xPath.evaluate("/MEMBER_LIST/MEMBER/ADDRESS", nodeMemberList, XPathConstants.NODESET);
for (int i = 0; i < nodeList.getLength(); ++i){
Node node = nodeList.item(i);
String address = node.getTextContent();
}
如果i==0
則答案將為空,因為XPath索引從1開始。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.