SimpleXML PHP - 从任何节点更改值

时间:2014-12-05 23:00:45

标签: php xml simplexml

Normaly我发现stackoverflow上的所有东西都是我锁定的。但现在我需要你的帮助。

我的例子xml:

<xml>
  <first>
    <change>Text to change</change>
  </first>
  <second>
    <change1>Text to change</change1>
    <change2>Text to change</change2>
    <change3>Text to change</change3>
  </second>
</xml>

现在我需要更改更改节点中的文本。但这是一个例子xml。我不知道xml的结构。我只有更改名称。 在js getElementsByTagName("change")中有... 当我想要从更改节点更改文本时,该怎么做

谢谢你们......并为我的英语而努力;)

1 个答案:

答案 0 :(得分:4)

使用xpath()

$xml = simplexml_load_string($x); // assume XML in $x
$changes = $xml->xpath("//*[starts-with(local-name(), 'change')]");

这将选择以change开头的所有节点。 //将从树中的任何位置选择它们。结果将SimpleXML元素存储在$changes中的数组中。

现在更改所选节点:

foreach ($changes as $change) 
    $change[0] = "New Text";

查看更改后的XML:

echo $xml->asXML();

看到它有效:https://eval.in/231427