Jump to content

Extract XML via PHP


Wuoshi

Recommended Posts

I have the following xml-file (not generated by me and can't choose myself).  I'm using simplexml and I have no problems accessing third level elements such as

<Category catalogs="false" id="169901" name="Reise" refinements="false">

using the follwing code

 

 


$xml = simplexml_load_file($xml_url);

$CounterObj = count($xml->Category);

for($StartPunt=0; $StartPunt < $CounterObj; $StartPunt++)
{

echo $xml->Category[$StartPunt]['name'];

}

 

But I'm trying without success to access the level below too, such as:

 

<Category catalogs="false" id="171701" name="Charter- og Pakketur" refinements="true"/>

 

Here's the xml-file:

 

<CategorySearch format="Tree" id="601">

<Category catalogs="false" id="601" name="Home Page" refinements="false">

	<Category catalogs="false" id="169901" name="Reise" refinements="false">
		<Category catalogs="false" id="171701" name="Charter- og Pakketur" refinements="true"/>
		<Category catalogs="false" id="172001" name="Ferje" refinements="false"/>
		<Category catalogs="false" id="100365023" name="Fly og hotell" refinements="false"/>
		<Category catalogs="false" id="172201" name="Flybilletter" refinements="false"/>
		<Category catalogs="false" id="170701" name="Hoteller" refinements="false"/>
		<Category catalogs="false" id="172301" name="Leiebil" refinements="false"/>
		<Category catalogs="false" id="100502023" name="Priskalender flybilletter" refinements="false"/>
		<Category catalogs="false" id="100425123" name="Reiseprodukter" refinements="false"/>
	</Category>

	<Category catalogs="false" id="110101" name="Data, Utstyr, Internett" refinements="false">

		<Category catalogs="false" id="100324323" name="Grafikk og fremvisning" refinements="false">
		<Category catalogs="true" id="127201" name="Projektorer" refinements="false"/>
		<Category catalogs="true" id="115401" name="Skannere" refinements="false"/>
		<Category catalogs="true" id="114401" name="Skjermer" refinements="false"/>
		<Category catalogs="true" id="114901" name="Skrivere" refinements="false"/>
		<Category catalogs="true" id="100052213" name="Alt-i-ett skrivere" refinements="false"/>
		<Category catalogs="true" id="116901" name="Nettverk- og Webkameraer" refinements="false"/>
	</Category>
</Category>
</CategorySearch>

 

 

Do I have to loop through it in some way? Or is there another solution?

 

Thanks in advance.

Link to comment
https://forums.phpfreaks.com/topic/188902-extract-xml-via-php/
Share on other sites

$xml = simplexml_load_file($xml_url);

foreach ($xml->Category as $cat) {
echo $cat['name'].'<br/>';
foreach ($cat as $cat2) {
	echo '    - '.$cat2['name'].'<br/>';
	foreach ($cat2 as $val) {
		echo '        - '.$val['name'].'<br/>';
	}
}
}

Never used simplexml before but i guess this works :P

Link to comment
https://forums.phpfreaks.com/topic/188902-extract-xml-via-php/#findComment-997365
Share on other sites

When I tested that script i was returned with (using your xml)

[pre]Home Page

    - Reise

        - Charter- og Pakketur

        - Ferje

        - Fly og hotell

        - Flybilletter

        - Hoteller

        - Leiebil

        - Priskalender flybilletter

        - Reiseprodukter

    - Data, Utstyr, Internett

        - Grafikk og fremvisning

        - Projektorer

        - Skannere

        - Skjermer

        - Skrivere

        - Alt-i-ett skrivere

        - Nettverk- og Webkameraer[/pre]Which is as deep as that XML goes..

Link to comment
https://forums.phpfreaks.com/topic/188902-extract-xml-via-php/#findComment-997454
Share on other sites

I generally find that displaying the structure, as simplexml/php sees it, helps determine how to access it -

echo "<pre>",print_r($xml,true),"</pre>";

 

You can put any level into the above to see what it looks like, such as -

echo "<pre>",print_r($xml->Category->Category,true),"</pre>";

 

 

Link to comment
https://forums.phpfreaks.com/topic/188902-extract-xml-via-php/#findComment-997457
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.