Как я могу узнать пространство имен элемента в PHP DOM?

Это звучит как довольно простой вопрос, но я не смог получить его работай. Я использую PHP 5.2.6.

У меня есть элемент DOM (корневой элемент), который при переходе к $ element-> saveXML () выводит атрибут xmlns:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
...

Однако я не могу найти любым способом программно в PHP, чтобы увидеть это пространство имен. Я хочу быть в состоянии проверить, существует ли он и для чего он установлен.

Проверка $ document-> documentElement-> namespaceURI была бы очевидным ответом, но он пуст (я на самом деле никогда не был в состоянии получить это, чтобы быть не пустым). Что генерирует это значение xmlns в выводе и как я могу его прочитать?

Единственный практический способ, которым я Мы смогли сделать это до сих пор - взломать его как XML в строку, используя saveXML (), а затем прочитать его с помощью регулярных выражений.

Редактировать:

Это может быть особенностью загрузки XML в используя loadHTML () вместо loadXML () и затем распечатывая его с помощью saveXML (). Когда вы делаете это, кажется, что по какой-то причине saveXML добавляет атрибут xmlns, даже если нет способа обнаружить, что это значение xmlns является частью документа с использованием методов DOM. То, что я предполагаю, означает, что если бы у меня был способ определить, был ли переданный документ загружен с использованием loadHTML (), то я мог бы решить эту проблему другим способом.

6
задан hakre 9 November 2012 в 16:14
поделиться