如何使用php simpleXML在现有xml中添加节点?

Son*_*net 5 php xml simplexml addattribute

我有一个像下面这样的 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>
Run Code Online (Sandbox Code Playgroud)

现在我想要一个新的 custscale 节点,如下所示在我现有的 xml 文件中:

<custscale sclNo="5" type="tbl1">
    <scaleName>Custome Scale New</scaleName>
    <jsfunc>custTbl1</jsfunc>
</custscale>
Run Code Online (Sandbox Code Playgroud)

mic*_*chi 3

使用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
Run Code Online (Sandbox Code Playgroud)

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