php kullanarak xml ayrıştırma ile yardımcı

2 Cevap php

Ben şu örnek xml var:

<entity id="1">
    <name>computer</name>
    <type>category</type>
    <entities>
        <entity id="2">
            <name>mac</name>
            <type>category</type>
        </entity>
        <entity id="3">
            <name>linux</name>
            <type>category</type>
            <entities>
                <entity id="4">
                    <name>ubuntu</name>
                    <type>category</type>
                </entity>
                <entity id="5">
                    <name>redhat</name>
                    <type>category</type>
                    <entities>
                        <entity id="6">
                            <name>server</name>
                            <type>category</type>
                        </entity>
                        <entity id="7">
                            <name>desktop</name>
                            <type>category</type>
                        </entity>
                    </entities>
                </entity>
            </entities>
        </entity>
    </entities>
</entity>

Ben bir kimliği var ise, 5 Diyelim aşağıdaki almak mümkündür.:

  • = 5 kimliği ile varlık ismi (redhat)
  • TÜM çocuk kişiler ve onların kimliği ve adı (6: server ve 7: masaüstü)
  • üst kuruluşları ve bunların kimliği ve adı tüm (1: bilgisayar, 2: mac ve 3: linux)

xml ayrıştırma üzerinde bir çaylak im. Bu sadece xpath veya xquery / XPath tarafından gerçekleştirilir?

Birisi bana SimpleXML ile bunu yapmak için bazı örnek kod verebilir ben seviniriz.

teşekkürler!

2 Cevap

<?php
$simpleXml = simplexml_load_string($xml); // or load your file, whatever

if (($element = $simpleXml->xpath('//*[@id = 5]'))) {
    var_dump($element);
    echo 'Element and descendants: ', $element[0]->asXML(), PHP_EOL;
    echo 'Name of the entity: ', $element[0]->name, PHP_EOL;
}

SimpleXML gerçekten sezgisel XML işleme sunuyor, ama bu tam DOM sınıfları daha sınırlıdır.

kullanabilirsiniz SimpleXML.