2013-06-25 66 views
-1

我有一个XML文件相同的波纹管:SimpleXML的插入子元素

<?xml version="1.0" encoding="UTF-8"?> 
<data> 
    <prod id="1"> 
     <layer id="layer_0" imgSRC="data/361_layer_0.png"/> 
     <layer id="layer_1" imgSRC="data/362_layer_0.png"/> 
     <layer id="layer_2" imgSRC="data/363_layer_0.png"/> 
    </prod> 
    <prod id="2"> 
     <layer id="layer_0" imgSRC="data/361_layer_0.png"/> 
     <layer id="layer_1" imgSRC="data/362_layer_0.png"/> 
     <layer id="layer_2" imgSRC="data/363_layer_0.png"/> 
    </prod> 
</data> 

如何使用SimpleXML来插入一项层ID = “layer_3” 像波纹管例如:

<prod id="1"> 
    <layer id="layer_0" imgSRC="data/361_layer_0.png"/> 
    <layer id="layer_1" imgSRC="data/362_layer_0.png"/> 
    <layer id="layer_2" imgSRC="data/363_layer_0.png"/> 
     <layer id="layer_3" imgSRC="data/364_layer_0.png"/> 
</prod> 

什么我必须这样做吗? 谢谢!

回答

0

(1)选择将成为新的孩子的父母的节点,我会去与xpath

$xml = simplexml_load_string($x); // assuming XML in $x 
$node = $xml->xpath("//prod[@id='2']/layer[@id='layer_2']")[0]; 

xpath将选择id=layer_2<prod>id=2作为父母的所有<layer>节点。如果有多个结果,[0]将只选择第一个结果。这适用于PHP >= 5.4

看到这方面的工作:http://3v4l.org/5Q46F

(2)再加入孩子和它的属性,看example #10simplexml手册:

http://www.php.net/manual/en/simplexml.examples-basic.php

+0

非常感谢:) –

+0

@BảoTrần:欢迎,很高兴我能帮上忙。请考虑接受答案=点击左侧的绿色勾号。 – michi