【问题标题】:edit XML with simpleXML使用 simpleXML 编辑 XML
【发布时间】:2011-01-06 17:21:25
【问题描述】:

如何使用 simpleXML 编辑 xml 文件中的值?

我知道如何创建文件,但不知道如何编辑现有文件中的值?

【问题讨论】:

标签: php xml simplexml


【解决方案1】:

当然你可以用SimpleXML编辑:

$input = <<<END
<?xml version='1.0' standalone='yes'?>
<documents>
  <document>
    <name>spec.doc</name>
  </document>
</documents>
END;

$xml = new SimpleXMLElement($input);
$xml->document[0]->name = 'spec.pdf';
$output = $xml->asXML();

看看examples

【讨论】:

    【解决方案2】:

    使用 SimpleXML 加载您的 XML 并进行更改。然后您可以使用asXML 方法将 XML 保存到文件中(您将文件名作为参数传递):

    $xml = new SimpleXMLElement( $xmlString );
    // do the manipulation here
    $xml->asXML ( '/path/to/your/file.xml' );
    

    【讨论】:

      【解决方案3】:

      请记住,尽管您可以使用 SimpleXML 编辑 XML,但存在一些限制。例如,您可以移除或删除节点或元素。您可以清除它以使其空白,但您不能完全消除它。为此,您需要 DOM 或类似的东西。

      【讨论】:

        【解决方案4】:

        我是这样工作的(它完全一样,但它可能会有所帮助): 文件 test.xml 可以是任何扩展名,只要它是纯 xml 文本即可。

        test.xml:

        <?xml version="1.0" encoding="utf-8"?>
        <sitedata>
            <Texts>
                <ANode SomeAttr="Green" OtherAttr="Small"/>This is the text I'm changing.</ANode>
            </Texts>
        </sitedata>
        

        还有 PHP 代码:

        $xml=simplexml_load_file("test.xml") or die("Error: Cannot create object");
        $SomeVar="<b>Text. This supports html code.</b><br/>I also work with variables, like GET or POST.";
        $xml->Texts[0]->{'ANode'}=$SomeVar;
        $xml->asXml('test.xml');
        

        结果 test.xml:

        <?xml version="1.0" encoding="utf-8"?>
        <sitedata>
            <Texts>
            <ANode SomeAttr="Green" OtherAttr="Small"/>&lt;b&gt;Text. This supports html code.&lt;/b&gt;&lt;br/&gt;I also work with variables, like GET or POST.</ANode>
            </Texts>
        </sitedata>
        

        希望对你有帮助!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-04-03
          • 1970-01-01
          • 2011-12-25
          • 2012-11-01
          • 2015-04-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多