NSScanner разбор HTML в plist - PullRequest
       32

NSScanner разбор HTML в plist

1 голос
/ 08 февраля 2010

Вопрос. Является ли это подходящим способом для анализа HTML в plist?

Мне нужно получить информацию из следующего HTML. HTML в этом стиле последовательно. Первый блок HTML является заголовком раздела, а вторая часть - содержимым разделов. Разделы могут иметь любое количество содержимого.

Это HTML.

<td class="boxcontainer">
<div class="">
  <div class="titlebox" id="">
  <div class="titlebox-title">
    <span class="widget"><a href="#" 
 onclick="return rollup('TitleBox--_index.html------MjUgbmV3ZXN0IHVub3duZWQgdGlja2V0cw==---0');" 
 title="Toggle visibility"></a>
 </span>
    <span class="left">
       <a href="/Search/Results.html?Format='%3Ca%20href%3D%22%2FTicket%2FDisplay.html%3Fid%3D__id__%22%3E__id__%3C%2Fa%3E%2FTITLE%3A%23'%2C%20'%3Ca%20href%3D%22%2FTicket%2FDisplay.html%3Fid%3D__id__%22%3E__Subject__%3C%2Fa%3E%2FTITLE%3ASubject'%2C%20QueueName%2C%20ExtendedStatus%2C%20CreatedRelative%2C%20'%3CA%20HREF%3D%22%2FTicket%2FDisplay.html%3FAction%3DTake%26id%3D__id__%22%3ETake%3C%2Fa%3E%2FTITLE%3A%26nbsp%3B'%20&Order=DESC&OrderBy=Created&Query=%20Owner%20%3D%20'Nobody'%20AND%20(%20Status%20%3D%20'new'%20OR%20Status%20%3D%20'open')">25 newest unowned tickets</a></span>
    <span class="right">
 <a href="/Prefs/Search.html?name=RT%3A%3AAttribute-2">
 Edit</a>
    </span>
  </div>
  <div class="titlebox-content " id="TitleBox--_index.html------MjUgbmV3ZXN0IHVub3duZWQgdGlja2V0cw==---0">



<table border="0" cellspacing="0" cellpadding="1" width="100%" class="ticket-list"><tr class="collection-as-table">
<th class="collection-as-table">#</th><th class="collection-as-table">Subject</th><th class="collection-as-table">Queue</th><th class="collection-as-table">Status</th><th class="collection-as-table">Created</th><th class="collection-as-table">&nbsp;</th></tr>
<tr class="oddline" >
<td class="collection-as-table" align="right"><a href="/Ticket/Display.html?id=19773">19773</a></td>
<td class="collection-as-table" ><a href="/Ticket/Display.html?id=19773">Web form help request: IT-Email Problem</a></td>
<td class="collection-as-table" >General</td>
<td class="collection-as-table" >new</td>
<td class="collection-as-table" >2 days ago</td>
<td class="collection-as-table" align="right"><a href="/Ticket/Display.html?Action=Take&amp;id=19773">Take</a></td>

Я планирую использовать NSScanner, чтобы найти «виджет», а затем найти «href =», затем найти следующее «>» и захватить все символы перед «

Повторяйте снова и снова, пока я снова не найду "виджет": { найти следующий "href =" и перейти к следующему ">" перехватить все символы до того, как "<" записать в подробности в plist ... </p>

Перейти к следующему "href =" перейти к ">" захватить символы перед "<" записать в plist как заголовок детали. } </p>

Я начал кодировать это, поскольку я новичок в этом языке, и я пытаюсь придумать реальный план, который имеет смысл. Имеет ли это смысл?

1 Ответ

0 голосов
/ 20 августа 2010

Вам нужен правильный анализатор для надежного анализа HTML-документа. Чтобы преобразовать HTML-документ в список свойств (plist), вам, вероятно, лучше использовать SAX-анализатор. NSXMLParser - это SAX-парсер, включенный в MacOS и iOS SDK.

Я нахожу этот пост полезным при идентификации синтаксического анализатора XML для target-c.

...