如何使用php更改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

我有以下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 .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>

?>