Ma ktoś pomysł na odczytanie danych znajdujących się za tagiem CDATA z wykorzystaniem SimpleXML ?
Oto przykładowy xml (kwałek):
<?xml version='1.0' encoding='UTF-8'?> <Message msgID="99999999999999" timeStamp="2012-04-06T12:12:23" version="01.00" > <Sender id="0" system="xxx" version="xxx"> <App name="Xxx" version="" /> </Sender> <Recipient id="xxx" system="xxx" /> <Packet> <PacketInfo> <action>xx</action> <manifest> <Type>xx</Type> <Version>xxx</Version> </manifest> <Status> <code></code> <longDescription>xxx</longDescription> </Status> <Command> <Code></Code> </Command> </PacketInfo> <payload crc="xxx"><![CDATA[<?xml version="1.0" encoding="UTF-8"?> <PositionOpening> <PositionRecordInfo validFrom="2012-06-04"> <IdXSDPL versionPL="xxx"/> <IdValueXMLPL>xxx</IdValueXMLPL> </PositionRecordInfo> <PositionSupplier> <SupplierId> <IdValue>Xxx</IdValue> </SupplierId> </PositionSupplier> <PositionProfile> <ProfileId validFrom="2012-06-04" validTo="2012-07-03"> <PositionIdUPPL>Xxx</PositionIdUPPL> <PositionNumberPL>xxx</PositionNumberPL> </ProfileId> <ProfileName>xxx</ProfileName> <Organization> <OrganizationName>xxx</OrganizationName> <OrganizationId> <IdValue>Xxx</IdValue> </OrganizationId> <IndustryCode>xxx</IndustryCode> <IndustryCodeX>x</IndustryCodeX> <ContactInfo> [...] </PositionOpening>]]></payload> </Packet> </Message>
Udało mi się rozwiązać problem. Nie jest może to sposób optymalny ale działa

Mianowicie postanowiłem usunąć znaczniki CDATA z pliku XML.
$xml = simplexml_load_string($content); foreach($xml->Packet->payload->PositionOpening->PositionProfile as $pos) { // odwołanie do poszczególnych gałęzi }