这是我简化的XML字符串:
<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代码,我可以解析整个&lt;描述&GT;标记:
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;
它的完美!解析的*描述字符串是:“&lt; i&gt; Att1&lt; / i&gt; 10,&lt; i&gt; Att2&lt; / i&gt; 20,&lt; i&gt; Att3&lt; / i&gt; 30”
但我想解析Att1,Att2和Att3的单独值;我需要在同一个标签中推断10,20和30的单个值。这是可能的?有一种方法可以使用RXML或XCode的另一个xml解析器吗?谢谢!
答案 0 :(得分:1)
我过去在结果上运行一个正则表达式来摆脱这个。
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标记。