【问题标题】:PHP: How do I write XML object into a XML filePHP:如何将 XML 对象写入 XML 文件
【发布时间】:2015-03-01 07:47:36
【问题描述】:

有一个 XML 文件,内容如下:

<StaticDataRequest>
   <Header>
      <Code>XXXX</Code>
      <Username>XXXX</Username>
      <Password>XXXX</Password>
   </Header>
   <Body>
      <GetStaticData>countries</GetStaticData>
   </Body>
</StaticDataRequest>

我需要更改上述文件的Code, Username, Password 值并保存。

所以,我通过以下命令读取该文件:

$xml = simplexml_load_file("country_request.xml");

我改变了元素值如下:

$xml->Header->Code = 'myCode';
$xml->Header->Username  = 'myUsername';
$xml->Header->Password  = 'myPassword';

现在,$xml 是一个具有以下结构的对象:

SimpleXMLElement Object
(
    [Header] => SimpleXMLElement Object
        (
            [Code] => myCode
            [Username] => myUsername
            [Password] => myPassword
        )

    [Body] => SimpleXMLElement Object
        (
            [GetStaticData] => countries
        )
)

问题

主要问题是如何将$xml 写入具有 XML 结构的 XML 文件中?

应该是这样的:

<StaticDataRequest>
       <Header>
          <Code>myCode</Code>
          <Username>myUsername</Username>
          <Password>myPassword</Password>
       </Header>
       <Body>
          <GetStaticData>countries</GetStaticData>
       </Body>
</StaticDataRequest>

【问题讨论】:

  • 能否在标题中包含您正在使用的编程语言?
  • 你昨天问了一个类似的问题并删除了。
  • 您可以使用SimpleXMLElement::asXML 和文件名作为参数,将XML-doc 写入该文件名。喜欢$xml-&gt;asXML('myfile.xml');
  • @AmitThakur 是的。但现在添加了更多细节......

标签: php xml object


【解决方案1】:

simplexml_load_file 返回一个SimpleXMLElement 对象。如果您查看文档,您会发现:

公共混合 asXML ([ string $filename ] )

换句话说:

$file = "country_request.xml";
$xml = simplexml_load_file($file);

// Do you stuff here...

if ($xml->asXML($file)) {
    echo 'Saved!';
} else {
    echo 'Unable to save to file :(';
}

【讨论】:

  • 它在 tnx 上工作,但 $file 的第一行包含其 xml 版本 &lt;?xml version="1.0"?&gt;。我可以在第一行没有 XML 版本的情况下写入$file 吗?
  • @user41888 XML 文件应该有一个版本。但是,如果您真的希望它消失,那么 this question 应该可以帮助您。
猜你喜欢
  • 2022-01-05
  • 1970-01-01
  • 1970-01-01
  • 2017-01-08
  • 2012-09-20
  • 2017-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多