'Seviye' ile yineleme, göreli XPath sorguları

0 Cevap php

Ben aşağıdaki işlemi gerçekleştirmek için bir XPath sorgu dizesi anlamaya çalışıyorum.

Böyle bir XML belgesi verilmiştir:

<root>
    <data>foo1</data>
    <irrelevant-node>
        <data>foo1</data>
    </irrelevant-node>
    <irrelevant-node />
    <data>foo2</data>
    <irrelevant-node />
    <region>
        <data>bar1</data>
        <data>bar2</data>
        <irrelevant-node />
        <region>
            <data>hello1</data>
            <irrelevant-node />
            <data>hello2</data>
            <region>
                <irrelevant-node />
                <data>world1</data>
            </region>
        </region>
        <irrelevant-node />
        <data>bar3</data>
        <irrelevant-node>
            <data>foo1</data>
        </irrelevant-node>
        <irrelevant-node />
    </region>
    <irrelevant-node />
</root>

Ben <data> bir <region> içinde yer almayan düğümleri tüm kapmak istiyorum.

Sonra en üstteki <region> düğümleri tüm kapmak ve nispeten çalışma, onlara önceki işlemi tekrarlamak istiyorum.

Esasen, ben onları yerine daha sonra, kendi içeriğine göre <data> düğümler üzerinde bir takım işlemler (PHP) sahne için gidiyorum. Ancak, <region> düğümleri kapsamı sınırlayıcı bir tür olarak hareket, ve ben bir verilen kapsamında tüm <data> düğümleri işleme bitirmek kez, ben bir bölge seviyesini aşağı hareket ettirin. <data> düğümleri diğer alakasız düğümleri içinde yuvalanmış olabilir.

XPath bunun için iyi bir araçtır, ve ben bu dışarı sıralamak için çalışırken sorun bir sürü yaşıyorum eğer emin değil. Belirtildiği gibi, ben DOM sınıfları PHP uygulamasını kullanıyorum.

0 Cevap