2011-05-25 65 views
1

我需要讀取HTML文件並在其中搜索一些標籤。根據結果​​,一些標籤需要被刪除,其他標籤會被改變,並可能會改進一些屬性 - 然後將文件寫回。操作HTML

是NSXMLDocument的路要走嗎?在這種情況下,我認爲不需要解析器,它甚至可能意味着更多的工作。我不想觸摸整個文件,我只需要將文件加載到內存中,更改一些內容並再次保存。

請注意,我將處理HTML,而不是XHTML。這可能是NSXMLDocument的問題嗎?也許一些不匹配的標籤或不封閉的標籤可能會使其停止工作。

回答

4

NSXMLDocument是要走的路。這樣你可以使用Xpath/Xquery來查找你想要的標籤。錯誤的HTML可能是一個問題,但你可以設置NSXMLDocumentTidyHTML,它應該是確定的,除非它非常糟糕。

1
NSRange startRange = [string rangeOfString:@"<htmlTag>"]; 
NSRange endRange = [string rangeOfString:@"</htmlTag>"]; 
NSString *subStr = [string subStringWithRange:NSMakeRange(startRange.location+startRange.length, endRange.location-startRange.location-startRange.length)]; 
NSString *finalStr = [string stringByReplacingOccurencesOfString:substr]; 

然後將finalstr寫入文件。

這是我會做的,請注意,我不完全知道使用NSXMLDocument的優點是什麼,這應該是完美的。

1

NSXMLDocument很可能會失敗,因爲一個事實,即HTML頁面沒有很好形成,但你可以嘗試用NSXMLDocumentTidyHTML/NSXMLDocumentTidyXML(你可以用它們既提高結果)所概述here,也有看起來this爲修改HTML的方法。