我知道类似的问题已经被问过好几次了,但我找不到以下问题的解决方案:
我有一个简单的 XML 文件: 服务器.xml
<servers>
<server>
<name> Google </name>
<address>http://www.google.com</address>
</server>
<server>
<name> Yahoo </name>
<address>http://www.yahoo.com</address>
</server>
<server>
<name> Bing </name>
<address>http://www.bing.com</address>
</server>
</servers>
现在,我正在尝试获取 <server>
例如名称为“Google”的节点,然后更改地址标签。
我不知道如何使用 SimpleXML 来处理它。
因此,示例场景如下:
- 获取服务器对象/数组,其中 $serverName = "Google"
- 将服务器的地址字段编辑为不同的内容,例如 http://www.google.co.uk
- 将更改写回 XML 文件。
如有任何帮助,我们将不胜感激。
最佳答案
获取 $serverName = "Google"的服务器对象/数组
// An array of all <server> elements with the chosen name $googles = $servers->xpath('server[name = " Google "]');
将服务器的地址字段编辑为不同的内容,例如 http://www.google.co.uk
//Find a google and change its address $google->address = 'http://www.google.co.uk';
将更改写回 XML 文件。
$servers->saveXML('path/to/file.xml');
完整示例
$servers = simplexml_load_file('path/to/file.xml');
$googles = $servers->xpath('server[name=" Google "]');
foreach ($googles as $google) {
$google->address = 'http://www.google.co.uk';
}
$servers->saveXML('path/to/file.xml');
更多信息
关于php - 通过 SimpleXML PHP 编辑 XML 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17658197/