如何使用XPath查询选择两个不同的元素

时间:2014-10-19 15:03:54

标签: php xpath css-selectors

我选择<a id="categoryBrandIcon">

$item = $xpath->query("//a[@id='categoryBrandIcon']")->item(0);

如何修改代码以选择<a id="categoryBrandIcon">和所有<input type="hidden">代码?

如果input[@type='hidden']选择输入但我不知道如何将这两者联系起来。

使用CSS选择器,我会执行此操作a#categoryBrandIcon, input[type="hidden"]

2 个答案:

答案 0 :(得分:2)

是的,你可以通过管道将它们组合在一个xpath查询中。例如:

$sample_markup = '
<div class="container">
    <a id="categoryBrandIcon" href="#">Test</a>
    <input type="hidden" />
    <input type="text" />
    <h1>Test</h1>
</div>
';

$dom = new DOMDocument();
$dom->loadHTML($sample_markup);
$xpath = new DOMXPath($dom);

$elements = $xpath->query("//a[@id='categoryBrandIcon'] | //input[@type='hidden']");
foreach($elements as $e) {
    // loop thru found elements
}

答案 1 :(得分:0)

您可以将两个xpath查询与竖线组合在一起,因此只需将两个查询链接在一起:

//a[@id='categoryBrandIcon'] | //input[@type='hidden']