- print_r: documentation ( source)
<?php
/**
* How to get attribute of node with namespace using SimpleXML?
*
* @link http://stackoverflow.com/q/6576773/367456
*/
$buffer = '<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<ns:quoteRS xmlns:ns="http://www.allianz.com/emagin/api/v1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="1.0"
xsi:schemaLocation="http://www.allianz.com/emagin/bs/common/v1 bs_common_v1.xsd http://www.allianz.com/emagin/bs/quote/v1 bs_quote_v1.xsd http://www.allianz.com/emagin/bs/domain/travel/v1 bs_domain_travel_v1.xsd">
<ns:status code="ERROR"/>
<ns:messages>
<ns:message code="NO_PRODUCT_AVAILABLE" lang="en" level="info">No offer matching the quotation request.</ns:message>
</ns:messages>
</ns:quoteRS>';
$xml = new SimpleXMLElement($buffer);
print_r($xml);
echo "ibxml version: ", LIBXML_DOTTED_VERSION, "\n";
foreach ($xml->entry as $item)
{
//original comment: how to get seconds?
$namespaces = $item->getNameSpaces(true);
$yt = $item->children($namespaces['yt']);
$seconds = $yt->duration->attributes();
echo $seconds['seconds'], "\n"; // original comment: but doesn't work.
}
echo "done. should read 1870 one time.\n";