将xpath字符串函数与结果列表一起使用

时间:2014-08-24 12:37:50

标签: dom xpath

我得到了他的html

<select name="super_attribute[517]" id="attribute517" class="required-entry super-attribute-select validation-failed">
    <option value="">Choose an Option...</option>
    <option value="840">34: $159.95</option>
    <option value="839">34.5: $159.95</option>
    <option value="841">35: $159.95</option>
    <option value="842">35.5: $159.95</option>
</select>

我想得到一个带有xpath {34,34.5,35,35.5}的值列表,但看起来我不能处理带有字符串函数的值列表,比如string-before。

substring-before(//select[@id='attribute517']/option[position()>1]/text(), ":")

此xpath返回34

1 个答案:

答案 0 :(得分:0)

除非您可以访问XPath 2.0或3.0或XQuery 1.0或3.0,否则您确实可以生成一系列值

//select[@id='attribute517']/option[position()>1]/substring-before(., ':')

你不能单独使用纯XPath。

因此,对于XPath 1.0,您需要迭代//select[@id='attribute517']/option[position()>1]的结果,然后在迭代的每个节点上应用表达式substring-before(., ':')