2013-10-28 83 views
0
<?xml version="1.0" encoding="UTF-8"?> 
<FLOOR> 
    <FLOOR1> 
<BlOCK ID="F5" NAME="HallMark" URL="F1.COM"/> 
<BlOCK ID="F6" NAME="F6" URL="F1.COM"/> 
<BlOCK ID="F7" NAME="U.S. Polo Assn." URL="F1.COM"/> 
    </FLOOR1> 

    <FLOOR2> 
<BlOCK ID="G4" NAME="Daiso" URL="G1.COM"/> 
<BlOCK ID="G5" NAME="Lakhoos Exchange" URL="G1.COM"/> 
<BlOCK ID="G6" NAME="4u" URL="G1.COM"/> 
<BlOCK ID="G7" NAME="Aldo" URL="G1.COM"/> 
<BlOCK ID="G8" NAME="Athlete's co." URL="G1.COM"/> 

    </FLOOR2> 
</FLOOR> 

以上是我的XML文件。我想用ID = G8更新「name」的元素值或者說ID = F7。請幫助。我嘗試了許多代碼。但失敗了如何使用php更新特定節點的XML元素?

I tried this .. but it returns empty. 
$xmlFile = file_get_contents('floormap.xml'); 
//$xml = simplexml_load_string($xmlFile); 
$new= new SimpleXMLElement($xmlFile); 
$n=$new->xpath('//FLOOR1/B1OCK[@ID="F1"]'); 
var_dump($n); 
+1

顯示你已經嘗試過什麼 – Jonathon

+0

把那些你嘗試和失敗的方式。請更新您的問題。 –

+0

它應該做什麼?整潔地解釋 – Sahal

回答

0

你已經到了一半。像這樣做:

$xml = simplexml_load_string($x); // assume XML in $x 
$update = $xml->xpath("//BlOCK[@ID='G7']")[0]; // requires PHP >= 5.4 
$update['NAME'] = "Michi"; 

如果您在$xml現在看起來,在NAME -attribute的<BlOCK> -node與ID='G7'的改變。

看到它的工作:http://codepad.viper-7.com/F9Pte1