2013-04-28 6 views
3

У меня есть xml-файл, как показано ниже, и мне нужно добавить новый узел с некоторым дочерним узлом и атрибутом.Как добавить узел в существующий xml с помощью php simpleXML?

<custscales> 
    <custscale sclNo="1" type="lin"> 
     <scaleName>Custom Scale Lin</scaleName> 
     <jsfunc>custLin</jsfunc> 
    </custscale> 
    <custscale sclNo="2" type="map"> 
     <scaleName>Custome Scale Map</scaleName> 
     <jsfunc>custMap</jsfunc> 
    </custscale> 
    <custscale sclNo="3" type="pol"> 
     <scaleName>Custome Scale Pol</scaleName> 
     <jsfunc>custPol</jsfunc> 
    </custscale> 
    <custscale sclNo="4" type="tbl1"> 
     <scaleName>Custome Scale Table</scaleName> 
     <jsfunc>custTbl1</jsfunc> 
    </custscale> 
</custscales> 

Теперь я хочу новый узел custscale, как показано ниже в моей существующей XML-файл:

<custscale sclNo="5" type="tbl1"> 
    <scaleName>Custome Scale New</scaleName> 
    <jsfunc>custTbl1</jsfunc> 
</custscale> 
+0

В какую конкретную проблему вы выполняете? Где ваш код, где вы столкнулись с ошибкой? Что конкретно не работает? Куда вы попадаете в скалу? Любые сообщения об ошибках? Какие из существующих решений здесь на этом веб-сайте не работают для вас? –

ответ

1

Использование addChild() и addAttribute():

$xml = simplexml_load_string($x); // assume XML in $x 

$cs = $xml->addChild('custscale',''); 
$cs->addAttribute('sclNo','5'); 
$cs->addChild('scaleName','Some Name'); 
// add other attributes and child-nodes 

см это работает: http://codepad.viper-7.com/Y13JbS

+0

Это не работает для меня. в моем xml нет нового узла – Sonnet

+0

@sonnet: отредактируйте свой вопрос и включите свой PHP! Легче указать вам в правильном направлении! – michi

+0

Я создал новый php с вашим кодом, только изменил строку $ xml = simplexml_load_file ('my_xml_file.xml'); но это не работает. – Sonnet

Смежные вопросы