never_had_a_name
never_had_a_name

Reputation: 93146

help with xml parsing using php

i've got following example xml:

<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>

if i've got an id, lets say 5. is it possible to retrieve the following:

im a noob on parsing xml. is this accomplished by xpath only or xquery/xpath?

i would appreciate if someone could give me some example code to do this with simplexml.

thanks!

Upvotes: 0

Views: 167

Answers (2)

janmoesen
janmoesen

Reputation: 8020

<?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 offers really intuitive XML processing, but it is more limited than the full DOM classes.

Upvotes: 1

ghostdog74
ghostdog74

Reputation: 342273

you can use SimpleXML.

Upvotes: 1

Related Questions