2013-08-19 96 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