如何使用simpleXML编辑xml文件中的值?
我知道如何创建文件,但不知道如何编辑现有文件中的值?
答案 0 :(得分:14)
确定您可以使用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。
答案 1 :(得分:7)
使用SimpleXML加载XML并进行更改。然后,您可以使用asXML方法将XML保存到文件中(将文件名作为参数传递):
$xml = new SimpleXMLElement( $xmlString );
// do the manipulation here
$xml->asXML ( '/path/to/your/file.xml' );
答案 2 :(得分:4)
请记住,尽管您可以使用SimpleXML编辑XML,但仍存在一些限制。例如,您可以删除或删除节点或元素。您可以将其清除以使其空白,但您无法完全消除它。为此,您需要DOM或类似的东西。
答案 3 :(得分:1)
我这样工作(它完全相同,但它可以帮助): 文件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"/><b>Text. This supports html code.</b><br/>I also work with variables, like GET or POST.</ANode>
</Texts>
</sitedata>
希望它有所帮助!