如何在PHP中将XML字符串转换为DOMDocument?

时间:2011-04-06 15:33:54

标签: php xml domdocument xml-parsing

我从客户那里得到了一个示例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>

我如何通过PHP中的DOMDocument以正确的方式设置它?

1 个答案:

答案 0 :(得分:5)

好吧,将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 );
}