带有类的Xpath选项,然后是值

时间:2015-05-09 00:45:14

标签: php xpath

我有以下html位:

<select class="custom" id="pa_size" name="attribute_pa_size">
<option value="">Choose an option…</option>
<option value="7" class="active">7</option><
option value="8" class="active">8</option>
<option value="9" class="active">9</option>
</select>

我想要的只是获取值,而不是选择选项。我能做到

$nodes = $xpath->query("//select[@id='pa_size']/option/@value");
        foreach ($nodes as $href=>$value){
        echo $value->textContent.'<br/>';
        }

这显示一个空白,(因为第一个选项没有价值),但这不是我想要的。我的意思是我可以使用它没有问题,把它放在一个数组然后拆分甚至做一个数字preg_match。但令我烦恼的是,第二个我将它改为$xpath->query("//select[@id='pa_size']/option[class='active']/@value"它会破坏。我想知道为什么以及如何解决这个问题,搜索SO以及除了反转引号(这=没有去),我没有发现它。有什么帮助吗?

1 个答案:

答案 0 :(得分:2)

您错过了将@放在class属性名称的开头:

//select[@id='pa_size']/option[class='active']/@value

在xpath上方尝试查找具有子节点 option的{​​{1}}节点 - 而不是名为class属性 - 等于&# 34;有源&#34 ;. xpath应该是:

class