I have the following XML structure:
<?xml version='1.0' ?> <course xml:lang='nl'> <body> <item id='787900813228567' view='12000' title='0x|Beschrijving' engtitle='0x|Description'><![CDATA[Dit college leert studenten hoe ze een onderzoek kunn$ <item id='5453116633894965' view='12000' title='0x|Onderwijsvorm' engtitle='0x|Method of instruction'><![CDATA[instructiecollege]]></item> <item id='7433550075448316' view='12000' title='0x|Toetsing' engtitle='0x|Examination'><![CDATA[Opdrachten/werkstuk]]></item> <item id='015071401858970545' view='12000' title='0x|Literatuur' engtitle='0x|Required reading'><![CDATA[Wayne C. Booth, Gregory G. Colomb, Joseph M. Wi$ <item id='5960589172957031' view='12000' title='0x|Uitbreiding' engtitle='0x|Expansion'><![CDATA[]]></item> <item id='3610066867901779' view='12000' title='0x|Aansluiting' engtitle='0x|Place in study program'><![CDATA[]]></item> <item id='19232369892482925' view='12000' title='0x|Toegangseisen' engtitle='0x|Course requirements'><![CDATA[]]></item> <item id='3332396346891524' view='12000' title='0x|Doelgroep' engtitle='0x|Target audience'><![CDATA[]]></item> <item id='6606851872934866' view='12000' title='0x|Aanmelden bij' engtitle='0x|Enrollment at'><![CDATA[]]></item> <item id='1478643580820973' view='12000' title='0x|Informatie bij' engtitle='0x|Information at'><![CDATA[Docent]]></item> <item id='9710608434763993' view='12000' title='0x|Rooster' engtitle='0x|Schedule'><![CDATA[1e semester, maandag 15.00-17.00, zaal 1175/030]]></item> </body> </course>
I want to get the data from one of the item tags. To get to this tag, I use the following xpath:
$description = $xml->xpath('//item[@title='0x|Beschrijving']');
This does indeed return an array in the form of:
Array ( [0] => SimpleXMLElement Object ( [@attributes] => Array ( [id] => 787900813228567 [view] => 12000 [title] => 0x|Beschrijving [engtitle] => 0x|Description ) ) )
But where is the actual information (that is stored between the item tags) located? I must be doing something wrong, but I can’t figure out what that might be… Probably something really simple… Help would be appreciated.
When you load the XML file, you’ll need to handle the CDATA.. This example works:
Here’s the output: