3

Iphone開発は初めてです.xmlページを解析したい.ソースコードにはいくつかのhtmlsタグが含まれています.このhtmlタグはシミュレーターに表示されます.タグをフィルタリングしてコンテンツのみを表示したい.xmlのソースコードはお気に入り

           <description> 
            <![CDATA[<br /><p class="author"><span class="by">By: </span>By Sydney Ember</p><br><p>In the week since an earthquake devastated Haiti ...</p>]]>
            </description>

html タグではなく、「... からの 1 週間以内に」を表示したいのですが、助けてください。

4

3 に答える 3

2

他の回答で前に述べたように、xmlのデータはCDATAブロック内にあります。これは、タグのコンテンツを取得するときに、XMLパーサーが「By:」ビットを削除できないことを意味します。 -それに関する限り、それはすべて単なるテキストです。

ただし、UIWebView内で(UILabelなどではなく)HTMLとして表示する場合は、文字列の先頭にスタイルシートを追加して、「By:」を非表示にすることができます。何かのようなもの

NSString *cssString = @"<style type='text/css'>span.by { display:none; }</style>"
NSString *html = [NSString stringWithFormat:@"<html><head>%@</head><body>%@</body></html>", cssString, descriptionString];
[webView loadHTMLString:html baseURL:nil];

ここで、descriptionStringは、<description>xml内のタグの内容です。

ただし、このアプローチは少し手間がかかります。サーバーからよりクリーンなxmlを取得するために非常に努力します。

実際にxmlを解析する場合は、NSXMLParserオブジェクトを試してください。

于 2010-01-25T09:27:14.087 に答える
2

ブロック内のコンテンツCDATAはテキストと見なされます (<、&、> などの xml 固有の文字は無視され、プレーンな文字として扱われます)。テキストの表示に使用しているテキスト キャンバスが html を受け入れる場合は、description タグのテキスト ノードを読み取り、innerHTMLキャンバスと同等のものに割り当てます。

于 2010-01-25T09:13:26.723 に答える
1

すべてのタグが HTML であることがわかります。さらに、コンテンツを XML ではなくテキストと見なす必要があることを定義する CDATA があります。XML 解析に関しては、iPhone で利用できる XML パーサーはほとんどありません。

  • TouchXML
  • XPathQuery

私は後者の方が好きです。パーサーが CDATA をどのように扱うかはわかりません。おそらく、2回解析する必要があります.1回目はCDATAコンテンツを取得し、2回目はコンテンツを解析します...

于 2010-01-25T09:10:13.410 に答える