2012-04-12 8 views
0

ich muß jeden operator_id Tags @name in Gruppe Tag mit @title Attribute Attribut gleich eine Schnur, ein Beispiel nicht unten, dies zu tun:XPath-Ausdruck nicht mit Attributwert überprüft

List list = doc.selectNodes("//root//menu//group[@title=" + menuTitle + "]//operator_id//@name"); 

XML-Struktur:

<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> 

Was bin ich d falsch?

Antwort

2

Ich bin kein XPath-Experte, aber ich glaube nicht denken Sie möchten Doppel-Schrägstriche den ganzen Weg durch Ihre Abfrage verwenden. Haben Sie es versucht:

List list = doc.selectNodes(
    "//root/menu/group[@title=" + menuTitle + "]/operator_id/@name"); 

? Selbst die // am Start kann nur / sein, wenn es wirklich das Wurzelelement sein soll.

Darüber hinaus vermute ich, dass Sie Zitat für den Wert, z.

List list = doc.selectNodes(
    "//root/menu/group[@title='" + menuTitle + "']/operator_id/@name"); 

oder

List list = doc.selectNodes(
    "//root/menu/group[@title=\"" + menuTitle + "\"]/operator_id/@name"); 

Diejenigen wären wie die Proben in der XPath-Spezifikation.

+0

Ja, ich habe es schon ausprobiert und es funktioniert - danke U für die Antwort. –