html - 获取 HTML 页面作为 XML 代码

标签 html xml xcode nsxmlparser

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

显然,为了做到这一点,我需要 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>

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

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

最佳答案

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-feeds。这些是纯 XML,并且总是格式正确。创建这些提要的目的是获取 XML 解析器可以轻松解释的数据。

关于html - 获取 HTML 页面作为 XML 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9210280/

相关文章:

html - 什么定义了显式网格?

javascript - 影响多个相同元素并避免不在 DOM 中时发生 null 错误,纯 JavaScript 与 jQuery

javascript - 使用 javascript 的 xml 属性缺少结束标记

xcode - 表达式太复杂,无法在合理的时间内解决...xcode 7 beta

html - 我怎样才能让这个图像背景只出现在该部分的一半?

javascript - 输入类型文本即使在可编辑后也不接受值

javascript - onload ='setInterval("函数( )",1000)' 不起作用

c# - 在 C# 中将不可序列化对象转换为字符串

iphone - 如果正在录制视频,如何提醒和停止尝试的 segue

ios - 带有白色背景的 UITextView 在仪器和模拟器中显示为颜色混合层