2013-06-25 2 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 для вставки элемента в слой ид = «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 подберет все <layer> узлы с id=layer_2, которые имеют <prod> с id=2 как родитель , Если есть несколько результатов, то [0] выберет только первый. Это работает с PHP >= 5.4.

посмотреть работу: http://3v4l.org/5Q46F

(2), а затем добавить ребенка и его атрибуты, см example #10 в simplexml руководстве:

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

+0

Большое спасибо :) –

+0

@ BảoTrần: Добро пожаловать, Рад, что смог помочь. Пожалуйста, примите ответ = нажмите зеленый галочку слева. – michi