Re: [PHP] SimpleXMLElement is not Simple
- From: quickshiftin@xxxxxxxxx ("Nathan Nobbe")
- Date: Thu, 27 Sep 2007 21:09:13 -0400
just curious, what database are you using?
-nathan
On 9/27/07, Jeffery Fernandez <jeffery@xxxxxxxxxx> 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_query_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_payment
env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><payment_id>5ce30dcc-7df7-04e8</payment_id><payment_amount>10</payment_amount><callback_query_string>&payment_id=5ce30dcc-7df7-04e8</callback_query_string><transaction_note>Order
from Student Library Fees with Payment Id:
5ce30dcc-7df7-04e8</transaction_note></ns1:make_proxy_payment></env:Body></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
- Follow-Ups:
- Re: [PHP] SimpleXMLElement is not Simple
- From: Jeffery Fernandez
- Re: [PHP] SimpleXMLElement is not Simple
- References:
- SimpleXMLElement is not Simple
- From: Jeffery Fernandez
- SimpleXMLElement is not Simple
- Prev by Date: Re: [PHP] counting with leading zeros
- Next by Date: Re: [PHP] SimpleXMLElement is not Simple
- Previous by thread: SimpleXMLElement is not Simple
- Next by thread: Re: [PHP] SimpleXMLElement is not Simple
- Index(es):
Relevant Pages
|