【问题标题】:PHP String to Valid XML filePHP字符串到有效的XML文件
【发布时间】:2017-10-19 10:23:06
【问题描述】:

我在将具有 XML 结构的字符串转换为正确的 XML 文件时遇到问题。

我的字符串看起来像:

<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 标签添加到这个字符串中,然后将其解析到文件中?

【问题讨论】:

  • 您的 XML 中没有根节点。

标签: php xml dom formatting


【解决方案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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2016-02-03
    • 1970-01-01
    • 1970-01-01
    • 2013-03-04
    • 2016-12-16
    • 1970-01-01
    相关资源
    最近更新 更多