解析复杂的XML字符串(RXML)
问题描述:
这是我简单的XML字符串:解析复杂的XML字符串(RXML)
<rss>
<channel>
<item>
<title>ITEM TITLE</title>
<description>
<i>Att1 </i>10, <i>Att2 </i>20, <i>Att3 </i>30
</description>
</item>
<item>
...
</item>
...
</channel>
</rss>
有了这个RXML代码,我可以分析整个< description>标记:
RXMLElement *rxmlRoot = [RXMLElement elementFromURL:[NSURL URLWithString:@"MY_XML_URL]];
RXMLElement *firstLevel = [rxmlRoot child:@"channel"];
NSArray *secondLevel = [firstLevel children:@"item"];
[rxmlRoot iterateElements:secondLevel usingBlock:^(RXMLElement *appElement) {
NSString *description = [appElement child:@"description"].text;
而且它的完美!所解析*描述字符串是: “< I> ATT1 </i>的10,< I> ATT2 </i>的20,< I> ATT3 </i>的30”
但我想解析单独值的Att1,Att2和Att3;我需要推断单个值10,20和30,不幸在同一个标签中。这是可能的?有一种方法可以用RXML或XCode的另一个xml解析器来完成它?谢谢!
答
我在过去运行结果的正则表达式来摆脱这一点。
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"< i>Att[0-9]< /i>"
options:NSRegularExpressionCaseInsensitive
error:nil];
[regex replaceMatchesInString:description
options:0
range:NSMakeRange(0, description.length)
withTemplate:@""];
如果您的数据格式不相同,也有可以去掉html标签的库。
谢谢尼克,我还有其他一些小问题,但肯定这是解析类似数据的好起点! – Huxley