为什么DomDocument loadXML不能为我工作?

时间:2018-01-25 10:47:08

标签: php domdocument

我有一个非常简单的测试用例,我正在试图发现我做错了什么。这是测试用例:

<?php
$xml = <<<XML
<?xml version="1.0"?>
<Contact>
    <Name>Foo Bar</Name>
    <Numbers>
        <Number>9876543210</Number>
        <Number>9876543212</Number>
    </Numbers>
    <Address>
        <Premise>11</Premise>
        <Postcode>ZZ99 9ZZ</Postcode>
    </Address>
</Contact>
XML;

$dom = new domDocument( '1.0', 'utf-8' );
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->recover = true;
libxml_use_internal_errors(true);
$result = $dom->loadXML($xml);
print_r($result);
$errors = libxml_get_errors();
print_r($errors);
$dom->saveXML($xmlContentFormatted);
echo "<pre lang=xml>";
echo $xmlContentFormatted;
echo "</pre><br><br>";  
?>

输出:

1Array ( )

1 个答案:

答案 0 :(得分:2)

您的代码中存在一些错误,使用$doc未在任何地方定义 - 应该是$dom,您尝试使用saveXML输出文档也是无效的。它试图使用$xmlContentFormatted作为保存的上下文节点 - 再次$xmlContentFormatted未在任何地方定义 - 而只是使用saveXML()的返回值作为输出... < / p>

$dom = new DOMDocument( '1.0', 'utf-8' );
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->recover = true;
libxml_use_internal_errors(true);
$dom->loadXML($xml);
echo "<pre lang=xml>";
echo $dom->saveXML();
echo "</pre><br><br>";