2 XPath sorguları birleştirme

1 Cevap php

Burada XPath ile bir sabit zaman yaşıyorum .. Aşağıdaki XPath sorguları Verilen:

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

Tek sorguda bunları birleştirmek mümkün mü? Ben alanın değerini almak istiyorum alan seçme bir giriş, textarea olacak eğer ile, ancak ben bilmiyorum ...

Ben şimdi bunu yapıyorum yolu şöyle:

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

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

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

Bu hantal görünüyor Ancak, tek bir bütün sorguları birleştirmek için bir yolu olmalı eminim.

1 Cevap

Sorguları katılmak için '|' kullanın.

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

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

EDIT: Thought I would add this in for more reference. http://www.w3schools.com/XPath/xpath_operators.asp