PHP字符串到有效的XML文件

时间:2017-05-19 10:20:29

标签: php xml dom formatting

我在将具有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标签添加到此字符串中,然后将其解析为文件?

1 个答案:

答案 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>