Цель C: разбирать искаженный XML - PullRequest
0 голосов
/ 08 мая 2011

Я пишу приложение для iPhone, которое загружает данные из Flickr API. На данный момент, кажется, нет никакого способа ограничить количество комментариев , которое оно загружает, и хотя я хотел бы получить, может быть, 8 или 10, иногда оно посылает мне сотни. У меня есть подклассы ASIHTTPRequest , так что он будет загружать только определенное количество байтов (например, он прекратит загрузку после получения 1024 байта данных комментария).

Теперь вся информация, которую я хотел бы проанализировать, - это все (данные комментариев содержат такие вещи, как идентификатор пользователя, текст и т. Д.). Тем не менее, поскольку он обрезается до конца, XML искажен, и мое текущее решение (использующее анализатор XML ObjectiveFlickr) не может проанализировать XML. Есть ли способ обработки плохо сформированного XML, как старые веб-браузеры обрабатывали HTML, и извлекать только правильно сформированные данные?

Вот некоторые примеры данных:

<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
<comments photo_id="5692627867">
    <comment id="49862655-5692627867-72157626659891768" author="29114051@N05" authorname="eαse*" iconserver="4046" iconfarm="5" datecreate="1304689286" permalink="http://www.flickr.com/photos/kikicchi/5692627867/#comment72157626659891768">lovely lovely lovelyyyyy!!! ♥♥♥♥♥♥♥♥♥</comment>
    <comment id="49862655-5692627867-72157626535581359" author="49946698@N06" authorname="RandomPics Art" iconserver="4017" iconfarm="5" datecreate="1304692593" permalink="http://www.flickr.com/photos/kikicchi/5692627867/#comment72157626535581359">nice! like soft colors and tones!</comment>
    <comment id="49862655-5692627867-72157626660240896" author="49907977@N06" authorname="kiki_chi" iconserver="4014" iconfarm="5" datecreate="1304693051" permalink="http://www.flickr.com/photos/kikicchi/5692627867/#comment72157626660240896">&amp;gt;eαse*
&amp;gt;RandomPics Art

Thank you:) :) :)</comment>
    <comment id="49862655-5692627867-72157626660761230" author="41717031@N08" authorname="petia.bourova" iconserver="4082" iconfarm="5" datecreate="1304698244" permalink="http://www.flickr.com/photos/kikicchi/5692627867/#comment72157626660761230">Thank you!Very nice photo!I like The coulers very,very much!!!</comment>
    <comment id="49862655-5692627867-72157626661258700" author="31540474@N08" authorname="Leentje32" iconserver="4067" iconfarm="5" datecreate="1304703576" permalink="http://www.flickr.com/photos/kikicchi/5692627867/#comment72157626661258700">Aww so lovely!! Beautiful capture.</comment>
    <comment id="49862655-5692627867-72157626662413410" author="61373986@N06" authorname="My NIKON And Me" iconserver="5310" iconfarm="6" datecreate="1304716098" permalink="http://www.flickr.com/photos/kikicchi/5692627867/#comment72157626662413410">lovely image!!!</comment>
    <comment id="49862655-5692627867-72157626663408864" author="7652657@N02" authorname="Majlee" iconserver="3130" iconfarm="4" datecreate="1304728344" permalink="http://www.flickr.com/photos/kikicchi/5692627867/#comment72157626663408864">This is just adorable !</comment>
    <comment id="49862655-5692627867-72157626663519092" author="15613254@N05" authorname="mr_jyoti" iconserver="4011" iconfarm="5" datecreate="1304729940" permalink="http://www.flickr.com/photos/kikicchi/5692627867/#comment72157626663519092">Cool shot. Nice bokey.</comment>
    <comment id="49862655-5692627867-72157626663642456" author="16327396@N03" authorname="my beanie hat rocks" iconserver="2550" iconfarm="3" datecreate="1304731810" permalink="http://www.flickr.com/photos/kikicchi/5692627867/#comment72157626663642456">Maybe she could cheer this fella up!!

&lt;a href=&quot;http://www.flickr.com/photos/weasteman/5652855802/in/photostream&quot;&gt;www.flickr.com/photos/weasteman/5652855802/in/photostream&lt;/a&gt;

=D</comment>

1 Ответ

1 голос
/ 08 мая 2011

Я не уверен насчет точного формата XML, но он выглядит просто. В этом случае вы можете попытаться определить последний тег в данных и вручную добавить отсутствующие закрывающие теги. Это не должно быть больше, чем простой поиск и замена строк.

...