2010-11-19 7 views
0

meine XML-Struktur ist:Hilfe! Wie füge Child hinzu, um Knoten mit PHP simpleXML zu spezifizieren?

<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> 

jetzt, wie kann ich Kind hinzufügen:

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

zum Knoten: <whMonthRecords month="2010-10">

Thank you very much!

Antwort

1

Zuerst schauen Sie für die Eltern des Knotens Sie hinzufügen möchten, sagen Sie es an den Knoten mit Monat hinzufügen möchten 2010-10, benutzen Sie diese XPath:

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

Nachdem Sie nun die Eltern haben , können Sie den Knoten mithilfe der addChild-Methode hinzufügen.

+0

Während ich PHP-Dokumentation lese, nimmt addChild Name und (optionalen) Wert, kein SimpleXMLElement als Parameter! –

+0

Sie können keinen SimpleXML-Knoten mit addChild hinzufügen. Ihr Knoten wird zur Zeichenkette hinzugefügt (und hinzugefügt). – BetaRide