我需要阅读一个 HTML 文件并在其中搜索一些标签。根据结果,需要删除一些标签,更改其他标签,并可能优化一些属性 - 然后将文件写回。
NSXMLDocument 是要走的路吗?我不认为在这种情况下真的需要解析器,它甚至可能意味着更多的工作。而且我不想接触整个文件,我需要做的就是将文件加载到内存中,更改一些内容,然后再次保存。
请注意,我将处理 HTML,而不是 XHTML。这可能是 NSXMLDocument 的问题吗?也许一些不匹配的标签或未关闭的标签可能会使其停止工作。
我需要阅读一个 HTML 文件并在其中搜索一些标签。根据结果,需要删除一些标签,更改其他标签,并可能优化一些属性 - 然后将文件写回。
NSXMLDocument 是要走的路吗?我不认为在这种情况下真的需要解析器,它甚至可能意味着更多的工作。而且我不想接触整个文件,我需要做的就是将文件加载到内存中,更改一些内容,然后再次保存。
请注意,我将处理 HTML,而不是 XHTML。这可能是 NSXMLDocument 的问题吗?也许一些不匹配的标签或未关闭的标签可能会使其停止工作。
NSXMLDocument 是要走的路。这样你就可以使用 Xpath/Xquery 来找到你想要的标签。糟糕的 HTML 可能是个问题,但您可以设置 NSXMLDocumentTidyHTML,除非它真的很糟糕,否则应该没问题。
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 的好处是什么,这应该可以完美地做到这一点。