Re: SimpleXMLElement is not Simple
| From: | Jeffery Fernandez | Date: | Mon, 01 Oct 2007 01:22:31 +0000 |
| Subject: | Re: SimpleXMLElement is not Simple | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-262606@lists.php.net to get a copy of this message | ||
On Friday 28 September 2007 11:21, Jeffery Fernandez wrote:
> On Friday 28 September 2007 11:09, Nathan Nobbe wrote:
> > just curious, what database are you using?
>
> I am using MySQL Ver 14.12 Distrib 5.0.22
Any clues Nathan?
I have done some further testing and found that if I copy the working code
(standalone script) and put it amongst the application code, that doesn't
work either. I am thinking its a locale or character encoding problem. Any
thoughts ?
cheers,
Jeffery
>
> cheers,
> Jeffery
>
> > -nathan
> >
> > On 9/27/07, Jeffery Fernandez <jeffery@ivt.com.au> wrote:
> > > I am having nightmares with this bit off code.
> > >
> > > The following code work perfectly fine:
> > >
> > > $soap_request_string = <<<XML
> > > <?xml version="1.0" encoding="UTF-8"?>
> > > <env:Envelope
> > > xmlns:env="http://www.w3.org/2003/05/soap-envelope"
> > > xmlns:ns1="urn:Gateway_Proxy"
> > >
> > > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > >
> > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> > > xmlns:enc="
> > > http://www.w3.org/2003/05/soap-encoding">
> > > <env:Body>
> > > <ns1:make_proxy_payment env:encodingStyle="
> > > http://www.w3.org/2003/05/soap-encoding">
> > > <payment_id>61ecc268-1cd0-f468</payment_id>
> > > <payment_amount>15495</payment_amount>
> > >
> > >
> > > <callback_query_string>&payment_id=61ecc268-1cd0-f468</callback_que
> > >ry _string> <transaction_note>Order from Student Library Fees with
> > > Payment Id: 61ecc268-1cd0-f468</transaction_note>
> > > </ns1:make_proxy_payment>
> > > </env:Body>
> > > </env:Envelope>
> > > XML;
> > >
> > > $xml = new SimpleXMLElement($soap_request_string, NULL, false, '
> > > http://www.w3.org/2003/05/soap-envelope');
> > > print_r($xml);
> > > $ns = $xml->getNamespaces(true);
> > > //print_r($ns);
> > >
> > > foreach ($xml->children($ns['env']) as $body)
> > > {
> > > //printf("%s<br />", $body->getName());
> > >
> > > foreach ($body->children($ns['ns1']) as $function)
> > > {
> > > printf("function %s()<br />", $function->getName());
> > >
> > > foreach ($function->children() as $parameters)
> > > {
> > > printf("%s => \"%s\"<br />",
> > > $parameters->getName(), $parameters);
> > > }
> > > }
> > > }
> > >
> > >
> > > However when the XML string is coming from the database it does not
> > > work. The Field and table have a collation of "utf8_unicode_ci"
> > >
> > > $soap_request_string = trim(str_replace(array("\n"), '',
> > > $record['SoapRequestEnvelope']));
> > > $xml = new SimpleXMLElement($soap_request_string, NULL, false, '
> > > http://www.w3.org/2003/05/soap-envelope');
> > > print_r($xml);
> > >
> > >
> > > The above code is supposed to print out the following (for me to
> > > proceed further):
> > >
> > > SimpleXMLElement Object
> > > (
> > > [Body] => SimpleXMLElement Object
> > > (
> > > )
> > > )
> > >
> > >
> > > but only returns:
> > > SimpleXMLElement Object
> > > (
> > > )
> > >
> > >
> > > The XL string from the database looks exactly like this (after
> > > replacing new lines):
> > >
> > > <?xml version="1.0" encoding="UTF-8"?><env:Envelope
> > > xmlns:env="
> > > http://www.w3.org/2003/05/soap-envelope"
> > > xmlns:ns1="urn:Gateway_Proxy"
> > >
> > > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > > xmlns:xsi="
> > > http://www.w3.org/2001/XMLSchema-instance"
> > > xmlns:enc="
> > >
> > > http://www.w3.org/2003/05/soap-encoding"><env:Body><ns1:make_proxy_paym
> > >en t
> > >
> > > env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><payment_id
> > >>5
> > >
> > > ce30dcc-7df7-04e8</payment_id><payment_amount>10</payment_amount><callb
> > >ack
> > > _query_string>&payment_id=5ce30dcc-7df7-04e8</callback_query_string
> > >><t ransaction_note>Order from Student Library Fees with Payment Id:
> > >
> > > 5ce30dcc-7df7-04e8</transaction_note></ns1:make_proxy_payment></env:Bod
> > >y> </env:Envelope>
> > >
> > >
> > > I can't figure out whats wrong with the code. Any suggestions?
> > >
> > > cheers,
> > > Jeffery
> > > --
> > > Internet Vision Technologies
> > > Level 1, 520 Dorset Road
> > > Croydon
> > > Victoria - 3136
> > > Australia
--
Internet Vision Technologies
Level 1, 520 Dorset Road
Croydon
Victoria - 3136
Australia
Attachment: [application/pgp-signature]
Attachment: [application/pgp-signature]