我得到了他的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
答案 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(., ':')
。