2012-02-09 196 views
3

我刚刚了解了如何使用NSXMLPARSER解析Xcode中的数据。以XML代码获取HTML页面

为了做到这一点,显然,我将需要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文件,将其放入我们项目的资源中,然后从中提取数据?

回答

2

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

一个简单的网站可能看起来像这样:

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

正如你所看到的,这是有效的,简洁(wellformed)XML。如果您对<title>感兴趣,请解析此XML并查找<title> -tag。

的问题是,浏览器无法与HTML的编排良好如此严格。缺少<p>的结束标签通常是可以接受的。 XML解析器通常不会那么“好”并产生错误。

很多时候,网站有rss/atom-feeds。这些都是纯XML,并且始终保持良好。这些提要用于获取XML解析器容易解释的数据。