SimpleXML之前添加元素

时间:2012-10-23 12:06:17

标签: php xml xsd simplexml

我正在使用 SimpleXML 生成基于xml的发票。

结构必须像这样(大大简化):

<invoice>
    <total>
        <price>100</price>
    </total>
    <items>
        <item>...</item>
    </items>
</invoice>

但是如果首先循环我的项目并将总计加在一起,然后插入<total>

<invoice>
    <items>...</items>
    <total>...</total>
</invoice>

CUSTOM XSD 表示无效。这可能不会导致应用程序出错,但我希望它有效。

我可以在 <total>代码之前插入<items>代码吗?

注意: <items>标记不是<invoice>中的第一个元素。

相当于需要的函数的Jquery是 .insertBefore()

干杯!

1 个答案:

答案 0 :(得分:1)

您可以这样做:

    $domelement = dom_import_simplexml($items);

    $new = $dom->insertBefore(
        $dom->ownerDocument->createElement("total"),
        $dom->firstChild
    );

    $newsxml = simplexml_import_dom($new);

然后将项目添加到总节点中。