我有以下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以及除了反转引号(这=没有去),我没有发现它。有什么帮助吗?
答案 0 :(得分:2)
您错过了将@
放在class
属性名称的开头:
//select[@id='pa_size']/option[class='active']/@value
在xpath上方尝试查找具有子节点 option
的{{1}}节点 - 而不是名为class
的属性 - 等于&# 34;有源&#34 ;. xpath应该是:
class