加入2个XPath查询

时间:2009-08-17 03:56:05

标签: php html dom xpath input

我在这里遇到了很多困难。鉴于以下XPath查询:

$xpath->query('//input[@name="' . $field . '"]');
$xpath->query('//select[@name="' . $field . '"]');

是否可以将它们合并为一个查询?我想获得该字段的值,但是我不知道该字段是否为输入,选择,textarea ......

我现在这样做的方式是这样的:

$input = $xpath->query('//input[@name="' . $field . '"]');

if (empty($input) === true)
{
    $select = $xpath->query('//select[@name="' . $field . '"]');

    if (empty($select) === true)
    {
        // ...
    }
}

然而,这似乎很麻烦,我确信必须有办法将所有查询合并为一个。

1 个答案:

答案 0 :(得分:5)

使用'|'加入查询。

$v = '[@name="' . $field . '"]';
$input = $xpath->query('//input' . $v. ' | //select' . $v);

if (empty($input) === true)
{
     // ...    
}

编辑: 以为我会添加这个以供更多参考。 http://www.w3schools.com/XPath/xpath_operators.asp