Как добавить узел в существующий XML с помощью php simpleXML?
У меня есть XML-файл, как показано ниже, и мне нужно добавить новый узел с некоторым дочерним узлом и атрибутом.
<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>
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