PHP DOM Xpath - как получить один элемент - PullRequest
2 голосов
/ 24 ноября 2011
<?php
$html = new DOMDocument();
$html->loadHtmlFile( 'report.html' );
$xpath = new DOMXPath( $html );

$results = $xpath->evaluate('/html/body/div/table[2]/tr/td[3]');
foreach ($results as $result)
{
  {
    echo $result->nodeValue."\r\n";
  }
}
?> 

возвращает

GTkio94312
10/24/2011 10:21:45
01:19:46

Я пытался

echo $result->nodeValue->item[0];

только для получения

GTkio94312

но возвращает пустую строку. Где моя вина?

1 Ответ

2 голосов
/ 24 ноября 2011

->nodValue возвращает простую строку, а не объект. У любого данного узла есть только одно значение узла, так что нет субобъекта / 1002 * для получения других данных.

$results->item(0)->nodeValue;  // correct - nodevalue of first result node in results object
       ^---note the S
$result->item(0)->... // incorrect - result is a single node

Запрос xpath () возвращает DOMNodeList. Выполнение foreach в этом списке возвращает отдельные объекты DOMNode, которые были найдены запросом xpath. Каждый DOMNode имеет один атрибут nodeValue, который представляет собой содержимое узла в виде строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...