When working with xml allot, you’ll find that this little ‘trick’ might come in handy.
Editing large xml structures is a pain. So why not convert them to a nice array?
It’s done like this:
The xml:
<PipeMsg> <Header> <Task>Logon</Task> <AuthenticationToken>sdfdg4-hkjty45-4544-sdfdsf4</AuthenticationToken> <CreationDstamp>54641215</CreationDstamp> </Header> <Body> <UserName>Crazy</UserName> <Password>cinderella </Password> </Body> </PipeMsg>
Now convert to an array:
$objXml = 'the xml in the blok above'; $arrXml = Set::reverse($objXml;); echo $arrXml['Header']['Task']; //result Logon
We can also go the other way around, in CakePHP we do it like this:
//$arrXml = array from example above App::Import('Helper', 'Xml'); $objXmlHelper = new XmlHelper(); $objXml = $objXmlHelper->serilize($arrXml);
A very nice Topic. Thanks alot hope you go for the detail next time!
Good hint! I didn’t knew it especially Array to XML is really good. I had a project which required exactly this, but later on it was transferred to comma separated output. Anyway, good hint!
Personally I don’t really like working with CSV, it’s much harder to work with then xml.
Especially for what I’m using it atm, communication between two sites.