2014-12-05 62 views
-1

通常情況下,我找到了iam鎖定的所有stackoverflow。但現在我需要你的幫助。SimpleXML PHP - 從任何節點更改值

我的示例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") 是什麼時,我想改變的變化節點文本

感謝傢伙...和SRY,我的英語;)

+0

'first'和'秒'爲你」在此使用它們不屬於XML,因爲兄弟節點根據定義是無序的。 – Madbreaks 2014-12-05 23:03:28

回答

1

使用xpath()

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

這將選擇所有以change開頭的節點。 //將從樹中的任何位置選擇它們。結果以$changes的數組形式存儲爲SimpleXML元素。

現在改變選擇的節點:

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

看看更改的XML:

echo $xml->asXML(); 

看到它的工作:https://eval.in/231427

+0

thx michi ..多數民衆贊成什麼即時鎖定! :THUMPS UP: – 2014-12-06 00:18:35

+0

很高興我可以幫助@BjörnBendig – michi 2014-12-06 20:23:21