Отображение содержимого страницы XML - PullRequest
3 голосов
/ 25 января 2010

Я новичок в разработке для iphone. Я хочу проанализировать страницу xml. Исходный код содержит некоторые теги htmls. Этот тег html отображается в моем симуляторе. Я хочу фильтровать теги и отображать только содержимое. Код SorceXML как

           <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. Пожалуйста, помогите мне. Спасибо

Ответы [ 3 ]

2 голосов
/ 25 января 2010

Содержимое внутри блока CDATA рассматривается как текст (специфичные для xml символы, такие как <, &,> и т. Д., Будут игнорироваться и рассматриваться как простые символы). Если текстовое полотно, которое вы используете для отображения текста, принимает html, прочитайте текстовый узел тега описания и присвойте ему innerHTML эквивалент холста.

2 голосов
/ 25 января 2010

Как уже говорилось в других ответах, данные в вашем xml находятся внутри блока CDATA - это означает, что когда вы получите содержимое тега, синтаксический анализатор XML не сможет избавиться от 'By:' немного для вас - это все, что касается текста.

Однако, если вы собираетесь отображать его внутри как HTML внутри UIWebView (вместо UILabel и т. Д.), Вы можете добавить таблицу стилей в начало строки, которая скрывает «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 .

1 голос
/ 25 января 2010

Я вижу, что все теги являются HTML. Кроме того, есть CDATA, который определяет, что его содержимое следует рассматривать как текст, а не как XML. Что касается синтаксического анализа XML - для iPhone доступно несколько синтаксических анализаторов XML:

  • TouchXML
  • XPathQuery

Я предпочитаю последнее. Я не уверен, как парсеры будут относиться к CDATA. Возможно, вам придется анализировать дважды - первый раз для получения содержимого CDATA и второй раз для анализа содержимого ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...