使用Xpath选择包括<br/>的块引用文本

时间:2011-06-28 09:33:08

标签: iphone parsing xpath

所以,我有这样的HTML:

<blockquote>TEXT<br/>MORE TEXT<br/>SOME MORE TEXT</blockquote>

基本上,我需要在blockquote标签之间获取所有文本,包括新行。 使用“// blockquote”只返回最后一行(SOME MORE TEXT),并使用“// blockquote / text()”将每一行作为数组中的单独项返回。

任何帮助?

2 个答案:

答案 0 :(得分:0)

您的代码运行正常。 br被解析器解释为另一个标记。

你必须像这样修改你的代码(我没有编译这个源代码):

- (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName

创建NSMutableString * finalValue;

if([elementName isEqualtoString"@"br"])
{
finalValue = [NSString stringwithformat:@"%@\n",finalValue];
}

所以基本上你必须在遇到一个br标签结尾时将\ n附加到解析后的值。

答案 1 :(得分:0)

的XPath:

//blockquote

将返回所有blockquote元素,无论它们在何处。

的XPath:

//blockquote/text()

将返回所有blockquote元素的子文本节点

的XPath:

//blockquote//node()

将返回所有blockquote元素的任何后代节点(文本或标签),即在您的情况下:

TEXT<br/>MORE TEXT<br/>SOME MORE TEXT