2012-01-28 78 views
4

实施例:输出属性值使用XPath 1.0

<div class='known' name='unknown'> 

我怎样才能返回基于已知class attribure值,使用XPath 1.0 name属性值( '未知')?

在寻找一个答案,我发现了XPath 2.0有此仪器:

//div[@class='known']/@name/string() 

,但无法找到的XPath 1.0类比

回答

5

使用

string(//div[@class='known']/@name) 

这生成d中第一个的name属性的字符串值ocument order div元素使得其class属性的字符串值为"unknown"

如果//div[@class='known']选择多于一个div元件,并且希望name属性为第k个选择div,使用的值:

string((//div[@class='known'])[$k]/@name) 

其中$k具有与想要的整数被取代,或否则变量$k必须位于XPath表达式的评估上下文中。

+0

谢谢。有没有办法输出所有元素?我尝试了'string((// div [@ class ='known'])[*]/@ name)',但它不起作用 – theta 2012-01-29 02:28:21

+1

@zetah:没有使用单个XPath 1.0表达式。但是,可以使用单个XPath 1.0表达式来选择所有元素或其所有'name'属性。然后,输出可以在主机编程语言的循环中完成。 – 2012-01-29 02:34:57