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;

そして完璧です!解析された *description 文字列は次のとおりです: "< 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 に答える