获取 HTML 页面作为 XML 代码

Guy*_*her 5 html xml xcode nsxmlparser

我刚刚学习了如何使用 NSXMLPARSER 在 Xcode 中解析数据。

为了做到这一点,显然,我需要 xml 文件,但我仍然是 Web 编程的初学者。

我在从网页获取 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>
Run Code Online (Sandbox Code Playgroud)

那么如何从网页中获取这样的格式呢?

还有一件事:如果有人知道使用 Xcode 的 NSXMLPARSER,这是从网站提取数据的方法吗?我的意思是获取一个 xml 文件,将其放入我们项目的资源中,然后从中提取数据?

Paa*_*ske 3

HTML 也是 XML。因此,如果您想从任何给定网站提取数据,您将需要获取 HTML(页面源)并“按原样”解析它,然后查找您需要的数据。

一个简单的网站可能如下所示:

<html>
  <head>
    <title>My website</title>
  </head>
  <body>
    <h1>welocome</h1>
    Text
    <p>paragraph</p>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,这是有效的、格式良好的 XML。如果您对 感兴趣<title>,请解析此 XML 并查找 -<title>标记。

问题是浏览器对 HTML 的格式没有那么严格。通常可以容忍缺少 的结束标记<p>。XML 解析器通常不会那么“好”并且会产生错误。

网站经常有 rss/atom-feeds。它们是纯 XML 并且格式始终正确。这些提要的目的是获取 XML 解析器可以轻松解释的数据。