Как преобразовать строку XML в DOMDocument на PHP? - PullRequest
3 голосов
/ 06 апреля 2011

Я получил пример XML-строки от клиента, которую я хотел бы преобразовать в DOMDocument. Кажется, я не могу правильно понять первый узел ....

Строка выглядит так;

<ev:Events xmlns:ev="xsdEvents" xsi:schemaLocation="xsdEvents [url]" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Node>
        <OtherNode>value</OtherNode>
    </Node>
</ev:Events>

Как бы я правильно настроил это через DOMDocument в PHP?

1 Ответ

5 голосов
/ 06 апреля 2011

Что ж, загрузка строки XML в объект DOMDocument не так уж и сложна - вам просто нужно использовать DOMDocument::loadXML().

Например, в вашем случае вы бы использовали:

$string = <<<XML
<ev:Events xmlns:ev="xsdEvents" xsi:schemaLocation="xsdEvents [url]" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Node>
        <OtherNode>value</OtherNode>
    </Node>
</ev:Events>
XML;

$dom = new DOMDocument();
$dom->loadXML($string);


Тогда доступ к вашим данным - это просто использование соответствующих методов DOM.

Например, чтобы извлечь значение вашего узла <OtherNode>, вы можете использовать:

$items = $dom->getElementsByTagName('OtherNode');
if ($items->length > 0) {
  var_dump( $items->item(0)->nodeValue );
}
...