我在将具有XML结构的字符串转换为正确的XML文件时遇到问题。
My String看起来像:
<product>
<ID>12345</ID>
<NAME></NAME>
</product>
<product>
<ID>123</ID>
<NAME></NAME>
</product>
等等。问题是如果我使用DOM,我会得到空的结果。
$dom = new DomDocument('1.0', 'UTF-8');
$dom->loadXML($products);
$xml = $dom->saveXML($dom);
输出是:
string(39) "<?xml version="1.0" encoding="UTF-8"?>
"
我该如何使这项工作?或者我只是可以将html和root标签添加到此字符串中,然后将其解析为文件?
答案 0 :(得分:1)
您的XML格式不正确。 XML需要根元素。
如果您将XML更改为以下内容:
<products>
<product>
<ID>12345</ID>
<NAME></NAME>
</product>
<product>
<ID>123</ID>
<NAME></NAME>
</product>
</products>
它应该按预期工作。
调整后的代码:
<?php
$dom = new DomDocument('1.0', 'UTF-8');
$dom->loadXML('<products>
<product>
<ID>12345</ID>
<NAME></NAME>
</product>
<product>
<ID>123</ID>
<NAME></NAME>
</product>
</products>');
echo $dom->saveXML();
输出:
<?xml version="1.0"?>
<products>
<product>
<ID>12345</ID>
<NAME/>
</product>
<product>
<ID>123</ID>
<NAME/>
</product>
</products>