2010-11-19 65 views
0

我的XML結構爲:幫助!如何使用PHP simpleXML添加Child來指定節點?

<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

首先,找你要添加的節點的父,說你想將其與2010年10月添加到節點,使用此XPath:

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

現在,你有父,您可以使用addChild方法添加節點。

+0

當我閱讀PHP文檔時,addChild接受名稱和(可選)值,而不是SimpleXMLElement作爲參數! – 2011-04-05 14:28:07

+0

您不能使用addChild添加SimpleXML節點。你的節點將被串(並添加)爲字符串。 – BetaRide 2012-02-29 14:42:58