在Objective-C中使用XPath解析HTML

时间:2010-12-09 06:22:55

标签: iphone html objective-c xpath

嘿伙计们,我正在尝试用Objective-C中http://lib.harvard.edu/libraries/hours.html的XPath解析HTML,这个应用程序显示了网站上列出的50个库中每个库中每周的每一天的运行时间。我在cocoawithlove.com/2008/10/using-libxml2-for-parsing-and-xpath.html上找到了用于在Objective-C中对HTML进行XPath解析的代码,但是我仍然对我应该怎么做有点困惑获取每个图书馆每天的小时数。使用的相关方法似乎是

NSArray *PerformHTMLXPathQuery(NSData *document, NSString *query)

我的代码到目前为止

NSURL *urlPath = [NSURL URLWithString:@"http://lib.harvard.edu/libraries/hours.html"];
NSArray *array = PerformHTMLXPathQuery([NSData dataWithContentsOfURL:urlPath], NSString *query);

但是,因为我之前从未使用过XPath,所以我不确定在该方法的第二个参数中应该使用哪个字符串。有没有人有任何想法?

另外,我不太清楚如何处理PerformHTMLXPathQuery()返回的数组。我觉得cocoawithlove.com/2008/10/using-libxml2-for-parsing-and-xpath.html提供了一个非常好的解释,只是我以前从未使用过XPath所以它对我来说没有多大意义在此刻。总而言之,只要我的代码到目前为止是正确的,我想知道在PerformHTMLXPathQuery()方法中第二个参数使用什么,以及如何从它返回的数组中提取相关数据。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:-2)

XPath是一种用于导航XML文档的语言。 query参数是一个XPath查询字符串,您希望能够从HTML文件中提取所需的元素。我说“希望”因为

  1. 我不知道XPath在HTML 4文档中的表现如何
  2. 我已经查看了您要解析的页面的来源,这非常复杂。
  3. 无论如何,除了这些要点之外,您还需要学习如何创建XPath表达式。幸运的是,谷歌是你的朋友,在其中键入“XPath”会显示W3Schools tutorial on XPath。我只是撇去它,但看起来就像你需要的那样。