如何使用php更改xml项的值
我有以下xml文件test.xml:如何使用php更改xml项的值,php,xml,Php,Xml,我有以下xml文件test.xml: <a> <b c="test1" d="test2"/> <b c="test3" d="test4"/> </a> 此xml文件可以有1个或多个b元素。我想问一下如何使用php更改特定b中项目c的值 提前感谢。使用: 样本(所有c属性): 创建一个“.htaccess”文件,该文件用于控制服务器端的页面 在页面中添加以下行: AddType application/x-httpd-php .xm
<a>
<b c="test1" d="test2"/>
<b c="test3" d="test4"/>
</a>
此xml文件可以有1个或多个b元素。我想问一下如何使用php更改特定b中项目c的值
提前感谢。使用:
样本(所有c属性):
创建一个“.htaccess”文件,该文件用于控制服务器端的页面
在页面中添加以下行:
AddType application/x-httpd-php .xml
这会将任何xml文档转换成PHP,但如果您不想在xml中使用PHP,它仍然可以,因为PHP是灵活的,页面可以工作,而无需在其中编写PHP
现在使用一些str替换来获得您想要的工作
<?php
$xml = "<a>
<b c="test1" d="test2"/>
<b c="test3" d="test4"/>
</a>";
$find = array("test1","test2","test3","test4");
$xml = str_replace($find, "stuff", $xml);
echo $xml;
// output:
// <a>
// <b c="stuff" d="stuff"/>
// <b c="stuff" d="stuff"/>
// </a>
?>
可能重复的可能重复的在这一点上,我想指出,这个问题与元素的属性编辑有关,而不是元素本身的值。谢谢您的回答。我已经看过php.net上的例子了。但是,上面的代码会更改所有c项的值。例如,test1和test3成为newValue。但是,我只想改变其中一个。到目前为止,我已经设法在同一时间更改了所有元素,或者仅更改了第一个元素。但是我没有找到一种方法来改变一个特定的节点。要只改变特定的节点,你需要对该节点进行某种标识。之后,需要将xpath表达式更改为仅选择此节点。我将更改示例以反映这一点。这很好,并不像我预期的那样,但使用ID可能更容易处理项目。感谢这将改变所有的价值观,而不仅仅是一个具体的价值观。我的问题已经回答了,谢谢
AddType application/x-httpd-php .xml
<?php
$xml = "<a>
<b c="test1" d="test2"/>
<b c="test3" d="test4"/>
</a>";
$find = array("test1","test2","test3","test4");
$xml = str_replace($find, "stuff", $xml);
echo $xml;
// output:
// <a>
// <b c="stuff" d="stuff"/>
// <b c="stuff" d="stuff"/>
// </a>
?>