目标C,xpath查询不起作用

时间:2015-01-02 00:03:10

标签: objective-c xpath hpple

我有下一个HTML结构

<div class="item column-1">
  <h2>
    <a href="/news/1172-zimnee-21-12-2014">
      some text
    </a>
  </h2>

</div>

我想获取标签的内容,我正在使用此代码

NSURL *newURL = [NSURL URLWithString:@"http://mfc.mk.ua/news"];
NSData *newsData = [NSData dataWithContentsOfURL: newURL];

TFHpple *newsParser = [TFHpple hppleWithHTMLData: newsData];

NSString *newsXpathQueryString = @"//div[@class='item column-1']/h2/a";
NSArray *newsNodes = [newsParser searchWithXPathQuery: newsXpathQueryString];

NSMutableArray *newNews = [[NSMutableArray alloc] initWithCapacity: 0];

for (TFHppleElement *element in newsNodes)
{
    News *news = [[News alloc] init];

    [newNews addObject: news];

    news.title = [[element firstChild] content];

    _objects = newNews;
}

但它没有结果。如果我这样做:

news.title = [element objectForKey:@"href"]; 
然后我得到了结果。我做错了什么?请帮忙。

1 个答案:

答案 0 :(得分:0)

如果你想要&#34;一些文字&#34;在您的示例中,您应该只使用[[element firstChild] content]而不是[element content]。如果您的示例具有代表性,但您也可能希望修剪空白区域和新线条。因此:

news.title = [[element content] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];