Я пытаюсь разобрать данные из функции поиска Archive.org. Данные выглядит следующим образом:Анализ XML с PHP и SimpleXML, где элементы называются <long>, <float> или <int>
<doc>
<float name="avg_rating">5.0</float>
<arr name="collection"><str>U-Melt</str><str>etree</str></arr>
<arr name="format"><str>Checksums</str><str>Flac</str><str>Flac FingerPrint</str>
<str>Metadata</str><str>Ogg Vorbis</str><str>Text</str><str>VBR M3U</str>
<str>VBR MP3</str><str>VBR ZIP</str></arr>
<str name="identifier">umelt2009-09-19.main.km184.flac16</str>
<str name="mediatype">etree</str>
<int name="num_reviews">1</int>
</doc>
Вот link to the full XML.
PHP SimpleXML отлично подходит для каждого документа и может читать элементы с меткой str и arr просто отлично. Это элементы, помеченные как float, int или long, на которые он волнуется, и я не могу понять, почему.
Мой синтаксический код выглядит следующим образом:
/* OPENING FILE */
$xml = simplexml_load_file($pathname.$identifier_list);
//Check the file to make sure it's got XML in it
$xmlCheck = file_get_contents($pathname.$identifier_list);
$xmlCheck = substr($xmlCheck,0,4);
if (!$xmlCheck == "<?xm") {
die("<p>WARNING: ".$filename." doesn't looks like XML, quitting. Check it to see what's wrong.");
}
else {
$result = $xml->result;
echo "<br/><br/>".$result['name']."<br/>";
$counter = 1;
foreach ($result->doc as $doc) {
echo "<br/><b>Document ".$counter."</b>";
$counter++;
foreach ($doc->children() as $item) {
echo $item->getName();
switch ((string) $item['name']) {
case 'identifier':
echo "<br/>Identifier: ".$item."\n";
break;
case 'licenseurl':
echo "<br/>License URL: ".$item."\n";
break;
case 'mediatype':
echo "<br/>Mediatype: ".$item."\n";
break;
case 'downloads':
echo "<br/>Downloads: ".$item."\n";
break;
case 'avg_rating':
echo "<br/>Average Rating: ".$item."\n";
break;
case 'collection':
echo "<br/>Collection: ".$item."\n";
break;
}
}
echo "<br/>";
}
}
Я попытался с помощью -> дети() -> док и -> длинные или -> внутр. Ни один из них, похоже, не забирает элементы long/int/float. Я начинаю думать, что это потому, что они примитивы, но я не знаю, как исправить эту проблему.
Заранее за вашу помощь.
Имеется ли пространство имен? Можете ли вы опубликовать полный xml? –
Ссылка добавлена в полный XML. –