1
Я пытаюсь выделить каждый блок <TEXT>
в моем XML, минус CDATA.PHP SimpleXML ForEach
Но по какой-то причине я только получаю первый.
Что я делаю неправильно?
Мой XML:
<WORLD>
<HAPPENINGS>
<EVENT id="30978968">
<TIMESTAMP>1421724317</TIMESTAMP>
<TEXT>
<![CDATA[ @@[email protected]@ was admitted to the World Assembly. ]]>
</TEXT>
</EVENT>
<EVENT id="30978955">
<TIMESTAMP>1421724294</TIMESTAMP>
<TEXT>
<![CDATA[ @@[email protected]@ applied to join the World Assembly. ]]>
</TEXT>
</EVENT>
<EVENT id="30978506">
<TIMESTAMP>1421723233</TIMESTAMP>
<TEXT>
<![CDATA[ @@[email protected]@ applied to join the World Assembly. ]]>
</TEXT>
</EVENT>
<EVENT id="30978469">
<TIMESTAMP>1421723119</TIMESTAMP>
<TEXT>
<![CDATA[ @@[email protected]@ applied to join the World Assembly. ]]>
</TEXT>
</EVENT>
<EVENT id="30978414">
<TIMESTAMP>1421722933</TIMESTAMP>
<TEXT>
<![CDATA[ @@[email protected]@ was admitted to the World Assembly. ]]>
</TEXT>
</EVENT>
<EVENT id="30978380">
<TIMESTAMP>1421722798</TIMESTAMP>
<TEXT>
<![CDATA[
@@[email protected]@ was admitted to the World Assembly.
]]>
</TEXT>
</EVENT>
<EVENT id="30978366">
<TIMESTAMP>1421722742</TIMESTAMP>
<TEXT>
<![CDATA[
@@[email protected]@ applied to join the World Assembly.
]]>
</TEXT>
</EVENT>
</HAPPENINGS>
</WORLD>
Мой PHP:
<?php
$x = 0;
function waAdmits() {
$file = "https://www.nationstates.net/cgi-bin/api.cgi?q=happenings;filter=member;limit=7";
$xml = simplexml_load_file($file,'SimpleXMLElement', LIBXML_NOCDATA);
foreach($xml->HAPPENINGS->EVENT->TEXT as $waAdmitNations) {
echo $waAdmitNations;
}
}
while($x<1)
{
$x++;
waAdmits();
}
?>
Мой выход:
@@[email protected]@ was admitted to the World Assembly.
Примечание: вопреки многим ссылкам, которые вы можете найти в Интернете, вам не нужно использовать 'LIBXML_NOCDATA'. Попробуйте это, и ваш код будет работать нормально. :) – IMSoP