我有一些HTML,如下所示:
<html>
<body>
... other html stuff ...
<form method="post" action="goSomewhere">
<input type="hidden" value="something">
<input type="hidden" value="something2">
<table>
<tr><td><input type="checkbox" name="123">Stuff 1</td></tr>
<tr><td><input type="checkbox" checked name="456">Stuff 2</td></tr>
<tr><td><input type="checkbox" name="789">Stuff 3</td></tr>
</body>
</html>
我正在尝试选择
<form>
中除具有特定名称(innerhtml,即是)的标记以外的所有内容。这是我正在使用的查询:$query = "//form//td[not(normalize-space() = 'Stuff 2')]";
这样可以成功过滤掉特定的
<td>
内容,但是问题在于,它仅返回<td>
内容。如您所见,其他<input>
不在<table>
中,我也需要这些。有人可以帮忙查询吗?谢谢!
最佳答案
您正在寻找//form//td[not(normalize-space() = 'Stuff 2')]/input|//input[not(ancestor::table)]
。
关于php - DomCrawler FilterXPath查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34533698/