0

グループタグ内のすべての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>

私は何を間違っていますか?

4

1 に答える 1

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 仕様のサンプルに似ています。

于 2012-04-12T11:42:33.347 に答える