2010-11-19 4 views
0

моя структура XML является:Помощь! Как добавить Child для указания узла с помощью PHP simpleXML?

<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 принимает имя и (необязательное) значение, а не простоXXMLElement в качестве параметра! –

+0

Вы не можете добавить узел SimpleXML с addChild. Ваш узел будет кастетом (и добавлен) в строку. – BetaRide