2013-08-19 129 views
2

我想爲下面的輸入元素提取@name值。Xpath:從元素中提取元素使用文本之外的文本

<div style="style info"> 
<input type="checkbox" name="name1" onchange="doSomething;"/> 
Mobile 
<br/> 
<input type="checkbox" name="name2" onchange="doSomething;"/> 
Event 
<br/> 
</div> 

在上面的例子中,我想提取與「Mobile」相關的名稱(「name1」)。

我需要一行xpath,可以爲我檢索這些信息。我曾嘗試

//div[normalize-space(text())='Mobile']/preceding-sibling::input/@name 

//div[normalize-space(text())='Mobile']/input/@name 

//div[normalize-space(.)='Mobile']/preceding-sibling::input/name 

和其他一些猜測這裏梳理檔案後,但我還沒有找到任何工作(我有點新的XML,你可以毫無疑問的說,對不起,如果我的猜測似乎雜亂無章) 。

在此先感謝您的回答,請讓我知道是否有任何澄清或更正,我可以做出這將有助於解決此問題。非常感謝您的幫助!

注:XSLT是不是爲我

回答

1

一個選項,你想先找到感興趣的文本節點,而不是股利。從那裏,你可以像你一樣嘗試去前面的兄弟姐妹。

嘗試:

//text()[normalize-space() = "Mobile"]/preceding-sibling::input/@name 
1

嘗試

//div/input[normalize-space(following-sibling::text()[1])='Mobile']/@name