I've been scratching my head for a couple hours now, but this works:
<?php
$string = <<<XML
<rows>
<row campaign="campaign name" adgroup="adgroup name" keywordid="307267587" kwSite="wa" siteKwStatus="Active" keywordMinCpc="60000" kwDestUrl="default URL" imps="338" clicks="8" ctr="0.023668639053254437" cpc="2396250" cost="19170000" pos="3.6597633136"/>
<row campaign="campaign name two" adgroup="adgroup two" keywordid="5235513218" kwSite="ppc" siteKwStatus="Active" keywordMinCpc="60000" kwDestUrl="default URL" imps="36" clicks="3" ctr="0.08333333333333333" cpc="1266666" cost="3800000" pos="1.7777777778"/>
<row campaign="campaign name three" adgroup="adgroup three" keywordid="5517787939" kwSite="ppcc" siteKwStatus="Active" keywordMinCpc="60000" kwDestUrl="default URL" imps="12" clicks="1" ctr="0.08333333333333333" cpc="1050000" cost="1050000" pos="1.0833333333"/>
</rows>
XML;
$xml = simplexml_load_string($string);
for($i=0;$i<3;$i++){
foreach($xml->row[$i]->attributes() as $a => $b) {
echo $a,'="',$b,"<BR>";
}
}
?>
But this doesn't:
<?php
$string = <<<XML
<columns>
<column name="campaign"/>
<column name="adgroup"/>
<column name="keywordid"/>
<column name="kwSite"/>
<column name="siteKwStatus"/>
<column name="keywordMinCpc"/>
<column name="kwDestUrl"/>
<column name="imps"/>
<column name="clicks"/>
<column name="ctr"/>
<column name="cpc"/>
<column name="cost"/>
<column name="pos"/>
</columns>
<rows>
<row campaign="campaign name" adgroup="adgroup name" keywordid="307267587" kwSite="wa" siteKwStatus="Active" keywordMinCpc="60000" kwDestUrl="default URL" imps="338" clicks="8" ctr="0.023668639053254437" cpc="2396250" cost="19170000" pos="3.6597633136"/>
<row campaign="campaign name two" adgroup="adgroup two" keywordid="5235513218" kwSite="ppc" siteKwStatus="Active" keywordMinCpc="60000" kwDestUrl="default URL" imps="36" clicks="3" ctr="0.08333333333333333" cpc="1266666" cost="3800000" pos="1.7777777778"/>
<row campaign="campaign name three" adgroup="adgroup three" keywordid="5517787939" kwSite="ppcc" siteKwStatus="Active" keywordMinCpc="60000" kwDestUrl="default URL" imps="12" clicks="1" ctr="0.08333333333333333" cpc="1050000" cost="1050000" pos="1.0833333333"/>
</rows>
XML;
$xml = simplexml_load_string($string);
for($i=0;$i<3;$i++){
foreach($xml->row[$i]->attributes() as $a => $b) {
echo $a,'="',$b,"<BR>";
}
}
?>
It get these errors:
Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 16: parser error : Extra content at the end of the document in public_html/api/test.php on line 25
Warning: simplexml_load_string() [function.simplexml-load-string]: <rows> in public_html/api/test.php on line 25
Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in public_html/api/test.php on line 25
Fatal error: Call to a member function attributes() on a non-object in public_html/api/test.php on line 29
Anybody know why it won't work when more informatin is in the xml document and how to fix this?
🙂