2017-07-28 9 views
0

私は助けが必要です!私は「注文」タグを閉じるようにしたいが、戻っタグは次のようになります。DOMDocumentのタグを閉じる(XML PHP)

<order\> 

私のPHPコードを、それは次のようになります。私がするリターンを希望

    $root = $doc->createElement('order'); 
        $root = $doc->appendChild($root); 

        $data = $doc->createElement('data'); 
        $data = $doc->appendChild($data); 

        $codigos = $doc->createElement('orderID'); // etiqueta 
        $codigos = $data->appendChild($codigos); // etiqueta 
        $textart = $doc->createTextNode($orden); // var del texto 
        $textart = $codigos->appendChild($textart); // ingreso al xml 

        $res = $doc->createElement('metodoCompra'); 
        $res = $data->appendChild($res); 
        $textres = $doc->createTextNode($metodoCompra); 
        $textres = $res->appendChild($textres); 

        $resMet = $doc->createElement('metodoPago'); 
        $resMet = $data->appendChild($resMet); 
        $textres = $doc->createTextNode($metodoPago); 
        $textres = $resMet->appendChild($textres); 

        $resFec = $doc->createElement('fecha'); 
        $resFec = $data->appendChild($resFec); 
        $textres = $doc->createTextNode($fecha); 
        $textres = $resFec->appendChild($textres); 

        $res = $doc->createElement('emailComprador'); 
        $res = $data->appendChild($res); 
        $textres = $doc->createTextNode($email); 
        $textres = $res->appendChild($textres); 

        $res = $doc->createElement('totalCompra'); 
        $res = $data->appendChild($res); 
        $textres = $doc->createTextNode($total); 
        $textres = $res->appendChild($textres); 

<order> 
<data> 
<orderID>108</orderID> 
<metodoCompra>Envio a coordinar</metodoCompra> 
<metodoPago>Giro Bancario</metodoPago> 
<fecha>09-08-2016</fecha> 
<emailComprador>[email protected]</emailComprador> 
<totalCompra>6565.2000</totalCompra> 
</data> 
</order> 

しかし、それは次のようになります。

<order/> 
<data> 
<orderID>108</orderID> 
<metodoCompra>Envio a coordinar</metodoCompra> 
<metodoPago>Giro Bancario</metodoPago> 
<fecha>09-08-2016</fecha> 
<emailComprador>[email protected]</emailComprador> 
<totalCompra>6565.2000</totalCompra> 
</data> 

私は何かが間違っていると私はそれが何であるか分からない任意のアイデア?

答えて

0

は、このコードの行1-4を交換してみてください。

$order = $doc->createElement('order'); 
$doc->appendChild($order); 

$data = $doc->createElement('data'); 
$order->appendChild($data); 
+0

動作します。ダニエルありがとう! –

0

あなたは右の親ノードに子ノードを追加しませんでした。 DOMでは、文書(DOMDocument::create*)のメソッドを使用してノードを作成し、親ノードのメソッド(\DOMNode::appendChild()\DOMNode::insertBefore())を添付します。

まず、ドキュメントオブジェクトを作成し、order要素を追加します。

$document = new \DOMDocument(); 
$order = $document->appendChild($document->createElement('order')); 

\DOMNode::appendChild()は、追加呼び出しをネストできるように、追加されたノードを返します。次に、data要素を作成し、orderノードに追加します。

$data = $order->appendChild($document->createElement('data')); 

このノードをドキュメントに追加しました。この結果、空のorderノードになります。空のXMLノードは、短い構文<tag/>で記述することができます。

関連する問題