XML düğümleri grubu Wrap

0 Cevap php

Im PHP5 ile çalışan, ve ben şu biçimde XML dönüştürmek gerekir:

<list>
    <item label="(1)">some text</item>
    <item label="(2)">
        <anotherNode>some text</anotherNode
        <item label="a">some text</item>
        <item label="b">some text</item>          
    </item>
</list>

Bu gibi bir şey içine:

<list>
    <item label="(1)">some text</item>
    <item label="(2)">
        <anotherNode>some text</anotherNode>
        <list> <!-- opening new wrapper node-->
            <item label="a">some text</item>
            <item label="b">some text</item>
        </list> <!-- closing new wrapper node-->
    </item>
</list> 

Yukarıda gördüğünüz gibi, ben zaten 'liste' düğüm tarafından sarılmış olmayan herhangi bir 'madde' düğümler için bir sarıcı düğüm eklemek gerekir.

Hedef xml kaynak xml dönüştürmek için olası çözümler nelerdir?

UPDATED:

Not 1: <item> düğümler herhangi bir tek ya da grup onun zaten sarılı değilse bir <list> düğüm tarafından sarılmış gerekmektedir.

Not 2: içerik Sipariş muhafaza edilmelidir.

Note 3: If there are <item> nodes before and after <anotherNode>. It should transform this:

<list>
    <item label="(1)">some text</item>
    <item label="(2)">
        <item label="a">some text</item>
        <item label="b">some text</item>          
        <anotherNode>some text</anotherNode>
        <item label="c">some text</item>
        <item label="d">some text</item>          
    </item>
</list>

Bu içine:

<list>
    <item label="(1)">some text</item>
    <item label="(2)">
        <list> <!-- opening new wrapper node-->
            <item label="a">some text</item>
            <item label="b">some text</item>          
        </list> <!-- closing new wrapper node-->
        <anotherNode>some text</anotherNode>
        <list> <!-- opening new wrapper node-->
            <item label="c">some text</item>
            <item label="d">some text</item>
        </list> <!-- closing new wrapper node-->
    </item>
</list>

Teşekkürler,

0 Cevap