Objective-C HTML解析。获取标记之间的所有文本

Objective-C HTML解析。获取标记之间的所有文本,html,objective-c,parsing,hpple,Html,Objective C,Parsing,Hpple,我正在尝试从Piratebay上获取torrent描述。目前,我正在使用以下代码: NSString *path = @"//div[@id='content']/div[@id='main-content']/div/div[@id='detailsouterframe']/div[@id='detailsframe']/div[@id='details']/div[@class='nfo']/pre/node()"; NSArray *nodes = [parser searchWithXP

我正在尝试从Piratebay上获取torrent描述。目前,我正在使用以下代码:

NSString *path = @"//div[@id='content']/div[@id='main-content']/div/div[@id='detailsouterframe']/div[@id='detailsframe']/div[@id='details']/div[@class='nfo']/pre/node()";
NSArray *nodes = [parser searchWithXPathQuery:path];
for (TFHppleElement * element in nodes) {
    NSString *postid = [element content];
    if (postid) {
        [texts appendString:postid];
    }
}
<pre>
    <a href="http://img689.imageshack.us/img689/8292/itskindofafunnystory201.jpg" rel="nofollow">
    http://img689.imageshack.us/img689/8292/itskindofafunnystory201.jpg</a>
More texts about the file
</pre>
这只返回纯文本,而不返回屏幕截图的任何URL。除了纯文本之外,还有其他的链接和标签吗? 盗版易趣是这样描述的:


有关该文件的更多文本

这是一项简单的工作,你做得几乎正确

您需要的是
a
-标记的内容(或属性),因此需要告诉解析器您需要它

只需将您的
XPath
更改为

NSMutableArray *screenshotURLs = [[NSMutableArray alloc] initWithCapacity:0];
for (int i = 1; i < nodes.count; i++) {
    [screenshotURLs addObject:nodes[i]];
}
(您错过了末尾的
a
,不需要
节点()

输出:




如果你只想要截图URL,你可以做如下事情

NSMutableArray*屏幕快照URL=[[NSMutableArray alloc]initWithCapacity:0];
对于(int i=1;i
这是一项简单的工作,你做得几乎正确

您需要的是
a
-标记的内容(或属性),因此需要告诉解析器您需要它

只需将您的
XPath
更改为

NSMutableArray *screenshotURLs = [[NSMutableArray alloc] initWithCapacity:0];
for (int i = 1; i < nodes.count; i++) {
    [screenshotURLs addObject:nodes[i]];
}
(您错过了末尾的
a
,不需要
节点()

输出:




如果你只想要截图URL,你可以做如下事情

NSMutableArray*屏幕快照URL=[[NSMutableArray alloc]initWithCapacity:0];
对于(int i=1;i
您是否尝试过使用
@//div[@id='content']/div[@id='main-content']/div/div[@id='detailsouterframe']/div[@id='detailsframe']/div[@id='details']/div[@class='nfo']/pre/text()
?有帮助吗?它返回相同的内容。请再添加一些html或链接,因为您提供的代码片段使它正常工作…我将该代码片段与
@”//pre/text()“
一起使用。我认为您的路径有其他问题。该站点:将返回描述中的所有文本,但不返回链接。例如”诸如此类的截图:/并且没有指向截图的链接”,以及您发布的内容。您想要指向截图的链接吗?比如
http://leetleech.org/images/42024611449329122742.png
?您是否尝试过使用
@//div[@id='content']/div[@id='main-content']/div/div[@id='detailsouterframe']/div[@id='detailsframe']/div[@id='details']/div[@class='nfo']/pre/text()
?它会有帮助吗?它会返回相同的内容。请再添加一些html或链接,因为您提供的代码片段使其正常工作……我将该代码片段与
@//pre/text()一起使用。”
。我认为你的路径还有其他问题。该站点:将返回描述中的所有文本,但不返回链接。例如“诸如此类的屏幕截图:/n没有指向屏幕截图的链接”,以及你发布的内容。你想要指向屏幕截图的链接吗?例如
http://leetleech.org/images/42024611449329122742.png