救命!如何使用PHP simpleXML添加Child以指定Node?

时间:2010-11-19 14:26:08

标签: php simplexml addchild

我的xml结构是:

<users>
    <user id="126">
        <name>老黄牛三</name>
        <watchHistory>
             <whMonthRecords month="2010-10">
                    <whDateList month="2010-10">
                        <date>01</date>
                        <date>02</date>
                        <date>05</date>
                        <date>08</date>
                        <date>21</date>
                    </whDateList>
                    <whDateRecords date="2010-10-01">
                        <item itemID="1">飞越疯人院.老黄牛三.2010-10-01</item>
                        <item itemID="4">回到未.老黄牛三.2010-10-01来</item>
                        <item itemID="5">天天看的哦啊你.2010-10-01来</item>
                    </whDateRecords>
                    <whDateRecords date="2010-10-05">
                        <item itemID="1">飞越疯人院.老黄牛三.2010-10-05</item>
                        <item itemID="4">回到未来.老黄牛三.2010-10-05</item>
                    </whDateRecords>
                </whMonthRecords>
            <whMonthRecords month="2010-11">
             ........
            </whMonthRecords>
       <watchHistory>
    </user>
</users>

现在,我该如何添加孩子:

<whDateRecords date="2010-10-06">
                    <item itemID="45">飞越疯人院.老黄牛三.2010-10-05</item>
                    <item itemID="432">回到未来.老黄牛三.2010-10-05</item>
                </whDateRecords>

到节点:<whMonthRecords month="2010-10">

非常感谢!

1 个答案:

答案 0 :(得分:1)

首先,查找要添加的节点的父节点,假设您要将其添加到2010-10月的节点,请使用此xpath:

$xpath = '//whMonthRecords[@month="2010-10"]';
$nodes = $sxml->xpath($xpath); //sxml is the xml object!
$parent = $nodes[0];

现在您已拥有父级,您可以使用addChild方法添加节点。