问题:这是将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"> </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&id=19773">Take</a></td>
我的计划是使用NSScanner查找“widget”,然后找到“href =”然后找到下一个“&gt;”并在“&lt;”之前捕获所有字符并将其作为章节标题写入plist。
一遍又一遍地重复,直到我再次找到“widget”:{ 找到下一个“href =”并转到下一个“&gt;”捕获“&lt;”之前的所有字符写作详细信息给plist ...
转到下一个“href =”转到“&gt;”在“&lt;”之前捕获字符写给plist作为细节标题。 }
我已经开始对此进行编码,因为我是这种语言的新手,我正在努力想出一个有意义的真实计划。这有意义吗?
答案 0 :(得分:0)
您需要一个合适的解析器来可靠地解析HTML文档。要将HTML文档转换为属性列表(plist),最好使用SAX解析器。 NSXMLParser
是MacOS和iOS SDK中包含的SAX解析器。
我发现this post对于识别objective-c的XML解析器非常有用。