Использование Xpath для выделения текста цитаты, включая - PullRequest
1 голос
/ 28 июня 2011

Итак, у меня есть такой HTML-код:

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

По сути, мне нужно получить весь текст между тегами blockquote, включая новые строки.Использование "// blockquote" возвращает только последнюю строку (НЕКОТОРЫЙ БОЛЬШЕ ТЕКСТА), а использование "// blockquote / text ()" возвращает каждую строку как отдельный элемент в массиве.

Любая помощь?

Ответы [ 2 ]

0 голосов
/ 28 июня 2011

XPath:

//blockquote

вернет все элементы blockquote независимо от того, где они находятся.

XPath:

//blockquote/text()

вернет дочерние текстовые узлы всех элементов блочной цитаты

XPath:

//blockquote//node()

вернет любой узел-потомок (текст или теги) всех элементов блочной цитаты, то есть в вашем случае:

TEXT<br/>MORE TEXT<br/>SOME MORE TEXT
0 голосов
/ 28 июня 2011

Ну, ваш код ведет себя правильно. 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];
}

Таким образом, вам нужно будет добавить \ n к анализируемому значению, когда вы встретите конец тега br.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...