2012-04-12 61 views
0

我需要讓每一個operator_id標籤屬性@name@title屬性標記等於一些字符串, 爲例進行未能做到這一點:XPath表達式失敗,檢查屬性值

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> 

什麼是I D錯了嗎?

回答

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規範中的樣本。

+0

是的,我已經嘗試過它,它的工作原理 - 感謝你的迴應。 – 2012-04-12 11:55:52