Как я выполняю итерации через элементы DOM в PHP?

Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:

  1. Вызов метода экземпляра объекта null.
  2. Доступ или изменение поля объекта null.
  3. Принимая длину null, как если бы это был массив.
  4. Доступ или изменение слотов null, как если бы это был массив.
  5. Бросок null как будто это было значение Throwable.

Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null.

Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html

31
задан hakre 1 July 2012 в 15:49
поделиться

3 ответа

Не протестированный, но что относительно:

$elements = $dom->getElementsByTagName('foo');
$data = array();
foreach($elements as $node){
    foreach($node->childNodes as $child) {
        $data[] = array($child->nodeName => $child->nodeValue);
    }
}
43
ответ дан 27 November 2019 в 22:25
поделиться

Обычно намного лучше использовать XPath для запросов документа, чем это должно написать код, который зависит от знания структуры документа. Существует две причины. Во-первых, существует намного меньше кода, чтобы протестировать и отладить. Во-вторых, если структура документа изменяется, намного легче изменить запрос XPath, чем это должно изменить набор кода.

, Конечно, необходимо изучить XPath, но (большая часть) XPath не является аэрокосмическими исследованиями.

DOM PHP использует xpath_eval метод для выполнения запросов XPath. Это зарегистрировало здесь , и пользовательские примечания включают некоторые довольно хорошие примеры.

4
ответ дан 27 November 2019 в 22:25
поделиться

Вот другой (ленивый) способ сделать это.

$data[][$node->nodeName] = $node->nodeValue;
2
ответ дан 27 November 2019 в 22:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: