如何使用SimpleXML在PHP中合并两个XML文档?

hay*_*uhl 5 php xml simplexml

我有一个看起来像这样的数据库行.

ID (int):       123
Name (string):  SomeName
Data (string):  <data><foo>one</foo></bar>two</bar></data>
Run Code Online (Sandbox Code Playgroud)

我需要以下列方式将此数据格式化为XML.

<row>
  <id>123</id>
  <name>SomeName</name>
  <data>
    <foo>one</foo>
    <bar>two</bar>
  </data>
<row>
Run Code Online (Sandbox Code Playgroud)

我目前正在使用SimpleXML来尝试构建它,但我不确定如何将现有的XML插入到我正在尝试构建的新XML文档中.

如果PHP附带其他标准XML构建器,我也愿意使用它们. 字符串连接不是可接受的答案.

编辑:看起来好像SimpleXML不会做我需要的.我想在这一点上,我需要其他XML解析器的建议.

Jon*_*nah 2

$xml = new SimpleXMLElement('<row></row>');
$xml->addChild('id', /*database ID column*/);
$xml->addChild('name', /*database Name column*/);

$data = new SimpleXMLElement(/*database Data column*/);

$xml->addChild('data');
$xml->data->addChild('foo', $data->foo);
$xml->data->addChild('bar', $data->bar);
Run Code Online (Sandbox Code Playgroud)

经过测试,它有效。将其转换为您的实际应用程序应该很简单。可能有更灵活的方法,但我不知道。他们称其为 SimpleXML 并不是无缘无故的:)

  • 不继续这个了。数据库中的 XML 具有复杂的结构。我需要一种通用的方法来做到这一点。将数据库中的 XML 视为任意结构化的 XML。 (3认同)