簡體   English   中英

Java中的XPath將不接受表達式中的變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM