標題將其歸納起來。我試圖查詢所有包含類result
的div標籤的HTML文件,並且不包含類grid
。PHP xpath包含類並且不包含類
<div class="result grid">skip this div</div>
<div class="result">grab this one</div>
謝謝!
標題將其歸納起來。我試圖查詢所有包含類result
的div標籤的HTML文件,並且不包含類grid
。PHP xpath包含類並且不包含類
<div class="result grid">skip this div</div>
<div class="result">grab this one</div>
謝謝!
這應做到:
<?
$doc = new DOMDocument();
$doc->loadHTMLFile('test.html');
$xpath = new DOMXPath($doc);
$nodeList = $xpath->query("//div[contains(@class, 'result') and not(contains(@class, 'grid'))]");
foreach ($nodeList as $node) {
echo $node->nodeName . "\n";
}
?>
你的XPath將//div[contains(concat(' ', @class, ' '), ' result ') and not(contains(concat(' ', @class, ' '), ' grid '))]
這是迄今爲止此問題的唯一正確答案 –
最佳答案。奇蹟般有效。 – kovpack
XPath語法是...
//div[not(contains(@class, 'grid'))]
我還沒有嘗試過非常多,僅// div [contains(@class,'result')並且不包含(@class,'grid')]和// div [contains(@class,'result')] [不包含(@class,'grid')]但非常明顯的是,我的語法正好趕上了 – Rob