0

这是我简化的 XML 字符串:

<rss>
 <channel>
  <item>
   <title>ITEM TITLE</title>
   <description>
    &lt;i&gt;Att1 &lt;/i&gt;10, &lt;i&gt;Att2 &lt;/i&gt;20, &lt;i&gt;Att3 &lt;/i&gt;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 解析器吗?谢谢!

4

1 回答 1

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 标签。

于 2012-12-21T18:49:37.603 回答