0

我试图从某些标签中获取所有 XML(不仅是值,而且包括两个打开和关闭标签之间的更多 XML),我想我会使用正则表达式。

我的代码看起来像这样

NSError *error2 = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"<PayloadPost>(.*)</PayloadPost>"
                                                                       options:NSRegularExpressionCaseInsensitive
                                                                         error:&error2];
if (error2)
{
    NSLog(@"Error %@", [error2 description]);
}

NSArray *payloadRanges=[regex matchesInString:theXMLString options:0 range:NSMakeRange(0, [theXMLString length])];
int size=[payloadRanges count];
printf("Size %d",size);

基本上我需要“PayloadPost”中的所有内容,但它一直没有给我任何东西。我的大小一直为 0,并且我知道 XML 中有 3 个实例。

谁能帮我吗?

4

1 回答 1

1

确保设置多行标志,https://developer.apple.com/library/mac/documentation/Foundation/Reference/NSRegularExpression_Class/Reference/Reference.html#//apple_ref/doc/c_ref/NSRegularExpressionDotMatchesLineSeparators

否则'.' 字符将不匹配换行符,您的正则表达式将匹配

<PayloadPost>something</PayloadPost>

但不是

<PayloadPost>
something
</PayloadPost>
于 2012-08-09T22:15:08.657 回答