我需要在组标记中获取每个 operator_id 标记属性 @name @title 属性等于某些串, 下面的示例未能执行此操作:
List list = doc.selectNodes("//root//menu//group[@title=" + menuTitle + "]//operator_id//@name");
XML结构:
<group id="980" title="Переводы" image="" sh_n="1" enable="1" visible="0" image_bg="" type="">
<operator_id id="10000047" name="Перевод физ лицу" image="individual.png" sh_n="1" enable="1" visible="1" />
<operator_id id="10000048" name="Перевод юр лицу" image="organizations.png" sh_n="1" enable="1" visible="1" />
<operator_id id="10000078" name="Перевод внутри банка" image="innerbank.png" sh_n="1" enable="1" visible="1" />
<operator_id id="10000049" name="Налоговый платеж" image="taxes1.png" sh_n="1" enable="1" visible="1" />
</group>
我做错了什么?
答案 0 :(得分:2)
我无论如何都不是XPath专家,但我不想想你想在查询中一直使用双斜线。你试过了吗?
List list = doc.selectNodes(
"//root/menu/group[@title=" + menuTitle + "]/operator_id/@name");
?如果它真的是根元素,即使开头的//
也可以只是/
。
此外,我怀疑你应该为该值添加引用,例如
List list = doc.selectNodes(
"//root/menu/group[@title='" + menuTitle + "']/operator_id/@name");
或
List list = doc.selectNodes(
"//root/menu/group[@title=\"" + menuTitle + "\"]/operator_id/@name");
那些更像是XPath规范中的样本。