创建XML Document子节点避免在前一个子节点内部

时间:2012-08-15 12:28:25

标签: php simplexml

我正在尝试从PHP代码创建一个XML文档来实现:

<xml version="1.0">
<parada nombre="Test Name" total="Test TOTAL">
       <linea numero="TestN" destino="TestD" minutos="TestM"/>
       <linea2 numero="TestN" destino="TestD" minutos="TestM"/>
</parada>

我在PHP上有这个代码:

<?php


$xml = new SimpleXMLElement('<xml/>');

$parada = $xml->addChild('parada');
$parada->addAttribute('nombre', 'Test Name');
$parada->addAttribute('total', 'Test TOTAL');

$linea = $parada->addChild('linea');

$linea->addAttribute('numero', 'TestN');
$linea->addAttribute('destino', 'TestD');
$linea->addAttribute('minutos', 'TestM');


$linea2 = $parada->addChild('linea2');

$linea2->addAttribute('numero', 'TestN');
$linea2->addAttribute('destino', 'TestD');
$linea2->addAttribute('minutos', 'TestM');


echo $xml;          

echo $xml->asXML();

&GT;

但我的结果是:

    <xml>
         <parada nombre="Test Name" total="Test TOTAL">
             <linea numero="TestN" destino="TestD" minutos="TestM">
                 <linea2 numero="TestN" destino="TestD" minutos="TestM"/>
             </linea>
        </parada>
    </xml>

我不知道为什么第二个childnode“linea2”在第一个childnode“linea”里面。

感谢。

1 个答案:

答案 0 :(得分:0)

这是因为您忘了<?xml标记不是<xml>标记。如果你想把<prada>作为root用户,你只需将它作为SimpleXMLElement构造函数的第一个参数

$doc = new SimpleXMLElement("<prada></prada>");