Ik heb een xml file die ik wil parsen, hiervoor heb ik (voorlopig) SimpleXML van PHP gekozen omdat dat het meest, tja, simpel was. Dit lukt tot op zekere hoogte alleen probeer ik een attribuut van een tag uit te lezen en dat lukt me voor geen meter. Ik zit er al tijden op blind te staren zonder dat ik verder kom. Misschien kan iemand hier een blik werpen:
De xml:
Het gaat om <xs:element name="msgtype">, ik wil dus de value "msgtype" krijgen. Wat ik ook probeer, het resultaat is leeg. Momenteel heb ik (fragment):
Dit zou het volgens mij moeten zijn, maar het blijft leeg. Waar zit ik verkeerd te denken??
De xml:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="X_TO_Y_XML"> <xs:complexType> <xs:choice> <xs:element name="msgtype"> <xs:complexType> <xs:sequence> <xs:element name="message_sequence">123</xs:element> <xs:element name="veld1">inhoud van veld1</xs:element> <xs:element name="veld2">inhoud van veld2</xs:element> <xs:element name="veld3">inhoud van veld3</xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> </xs:schema> |
Het gaat om <xs:element name="msgtype">, ik wil dus de value "msgtype" krijgen. Wat ik ook probeer, het resultaat is leeg. Momenteel heb ik (fragment):
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| function PT_XML_response($xml_string) { // construct object from xml string // parse xml and return error if not valid or wellformed $this->xml_string = $xml_string; if (!$this->xml_obj = simplexml_load_string($xml_string)) { $this->error = "XML parse error"; } $xml_children = $this->xml_obj->children("http://www.w3.org/2001/XMLSchema"); $xml_body = $xml_children->element->complexType->choice; $message_type = $xml_body->element["name"]; [..] |
Dit zou het volgens mij moeten zijn, maar het blijft leeg. Waar zit ik verkeerd te denken??