正则表达式(iPhone上的HTML解析)
我正在尝试使用objective-c从网站中提取数据。这对我来说都是全新的,所以我做了一些研究。我现在知道的是我需要使用xpath,我有另一个包装器,叫做iPhone的hpple。我已经在我的项目中启动并运行了它 我对从网站检索信息的方式感到困惑。显然,我要在这行代码中使用正则表达式:正则表达式(iPhone上的HTML解析),iphone,html,xpath,hpple,Iphone,Html,Xpath,Hpple,我正在尝试使用objective-c从网站中提取数据。这对我来说都是全新的,所以我做了一些研究。我现在知道的是我需要使用xpath,我有另一个包装器,叫做iPhone的hpple。我已经在我的项目中启动并运行了它 我对从网站检索信息的方式感到困惑。显然,我要在这行代码中使用正则表达式: NSArray * a = [doc search:@"//a[@class='sponsor']"]; 这只是一个例子。搜索中的东西是:@“…”正则表达式吗?如果是这样,我想我可以开发数百种模式,我的程序需要
NSArray * a = [doc search:@"//a[@class='sponsor']"];
这只是一个例子。搜索中的东西是:@“…”正则表达式吗?如果是这样,我想我可以开发数百种模式,我的程序需要这些模式来解析站点(我需要很多数据),但是有更好的方法吗?我很迷茫。非常感谢您的帮助。这是一个XPath表达式,而不是正则表达式。W3C在这里有一个XPath引用:。基本上,您正在使用类“赞助商”搜索元素
请注意,这是一件好事!正则表达式不适合解析HTML。参数是XPath,而不是正则表达式。下面是一个细分:
- 所有XPath都是相对于一个。在本例中,它是根节点
是一个缩写,意思是“所有后代”/
表示“节点类型为'a'的所有子节点”(即HTML)a
包含一个匹配的[…]
a
是属性节点的缩写@
表示名为“class”的属性@class
表示等于“赞助商”的类属性。注意:这将不匹配包含“赞助商”的类的节点,例如@class='scandor'
;阶级必须平等
总之,我们有“'a'节点从根开始向下,其类等于'shandor'”。非常有用。有没有一个程序可以让我轻松找到合适的XPath?或者XPath是否足够容易使用?您所说的“适当的XPath”是什么意思?您的意思是找到一个选择给定节点的XPath吗?我还没见过这样的应用。但是,有很多方法可以让您测试给定XPath是否为给定文档选择所需的节点。如果你使用Mac电脑,试着从开始。关于使用XPath,请搜索教程。它们的某些方面很容易处理;它们有点像进化的文件路径(我认为它发生在30级)。+1回答得好。A小调:
A
表示名为A
@Alejandro:d'oh的子元素。在我急于简化事情的过程中,我忽略了与轴有关的任何内容。