2013-03-05 8 views
0

У меня есть следующий HTML:текст Проблема получения узла с PHP XPath

<div class="data"> 
    <p class="info">output</p> 
    <p class="info">output2</p> 

Я пытаюсь получить текст «выход» со следующим

$xpath = new DOMXPath($dom);  

foreach ($xpath->evaluate("//div[@class='data']/p[1]") as $elt) { 
    $output=$elt->wholeText; 
} 

echo $output; 

его не работает. Я получаю 2 ошибки:

Message: Undefined property: DOMElement::$wholeText 
Message: Undefined variable: output 

Может ли кто-нибудь указать мне в правильном направлении?

Спасибо заранее,

Билл

+0

Не могли бы вы указать первый нам в направлении того, что "не работает" означает? – Jon

+0

Ваш div не закрыт. – Musa

+0

Как насчет использования 'DOMXPath :: query()'? – hek2mgl

ответ

1

попробовать это:

$xpath = new DOMXPath($dom); 

$elements = $xpath->query("*/div[@class='data']"); 

if (!is_null($elements)) { 
    foreach ($elements as $element) { 
    $nodes = $element->childNodes; 
    foreach ($nodes as $node) { 
     echo $node->nodeValue. "\n"; 
    } 
    } 
} 
+0

Я изменил его на $ elements = $ xpath-> query ("// div [@ class = 'data']"); Спасибо, это работает. – user61629