PHP XML在另一个元素之后(或之前)插入元素

Bob*_*ing 4 php xml dom

我有一个以前生成的XML,如下所示:

<newsletter>

    <header>
        </magazine>
        </image>
        <strap/>
    </header>

    <intro>
        <date/>
        <text/>
        </edimg>
    </intro>

    <shop>
        <heading/>
        <article/>
        <title/>
        <img/>
        <link/>
        <excerpt/>
    </shop>

    <sidebar>
        <cover/>
        <cover_link/>
        <text/>
        <advert>
        <link/>
        <image/>
        </advert>
    </sidebar>

</newsletter>
Run Code Online (Sandbox Code Playgroud)

我需要能够在元素<intro><shop>元素之间插入一个元素

这个:

$section = $dom->documentElement->appendChild($dom->createElement('section'));
Run Code Online (Sandbox Code Playgroud)

将只在其中创建元素<newsletter>.

我认为这会相当简单,但似乎无法找到解决方案.

谢谢.

Nab*_*bab 5

你可以试试这个; 我没有测试它,但解决方案来自使用insertBefore而不是appendChild.

$shop = $dom->getElementsByTagName("shop")->item(0);
$section = $dom->documentElement->insertBefore($dom->createElement('section'),$shop);
Run Code Online (Sandbox Code Playgroud)