Получить HTML-страницу в виде XML-кода - PullRequest
3 голосов
/ 09 февраля 2012

Я только что узнал о том, как анализировать данные в Xcode с помощью NSXMLPARSER.

Для этого, очевидно, мне понадобятся файлы XML, но я все еще начинающий с веб-программированием.

У меня проблемы с получением файла XML с веб-страницы.Я пытался конвертировать HTML в XML с помощью некоторых программ, но я все еще не получаю нужный формат.

Формат, который я хочу, должен быть примерно таким:

<?xml version="1.0" encoding="UTF-8"?>
<Books>
    <Book id="1">
        <title>Circumference</title>
        <author>Nicholas Nicastro</author>
        <summary>Eratosthenes and the Ancient Quest to Measure the Globe.</summary>
    </Book>
    <Book id="2">
        <title>Copernicus Secret</title>
        <author>Jack Repcheck</author>
        <summary>How the scientific revolution began</summary>
    </Book>
</Books>

Итак, как мне получить такой формат с веб-страницы?

И еще одна вещь:Если кто-то знает о NSXMLPARSER с использованием XCode, это способ извлечения данных с веб-сайтов?Я имею в виду получить файл XML, поместить его в ресурс нашего проекта, а затем извлечь из него данные?

1 Ответ

2 голосов
/ 28 марта 2012

HTML также является XML.Поэтому, если вы хотите извлечь данные с любого данного веб-сайта, вам необходимо получить HTML (источник страницы) и проанализировать его «как есть», а затем найти нужные данные.

Простойвеб-сайт может выглядеть так:

<html>
  <head>
    <title>My website</title>
  </head>
  <body>
    <h1>welocome</h1>
    Text
    <p>paragraph</p>
  </body>
</html>

Как видите, это правильный, правильно сформированный XML.Если вас интересует <title>, проанализируйте этот XML и найдите тег <title>.

Проблема заключается в том, что браузеры не настолько строги в отношении правильности HTML.Отсутствующий конечный тег для <p> часто допускается.XML-парсер обычно не был бы таким «хорошим» и выдавал бы ошибку.

Очень часто веб-сайты имеют каналы rss / atom.Это чистый XML и всегда хорошо сформированный.Эти каналы предназначены для получения данных, которые легко интерпретируются анализаторами XML.

...