Это звучит как довольно простой вопрос, но я не смог получить его работай. Я использую 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 (), то я мог бы решить эту проблему другим способом.