我需要读取HTML文件并在其中搜索一些标签。根据结果,一些标签需要被删除,其他标签会被改变,并可能会改进一些属性 - 然后将文件写回。操作HTML
是NSXMLDocument的路要走吗?在这种情况下,我认为不需要解析器,它甚至可能意味着更多的工作。我不想触摸整个文件,我只需要将文件加载到内存中,更改一些内容并再次保存。
请注意,我将处理HTML,而不是XHTML。这可能是NSXMLDocument的问题吗?也许一些不匹配的标签或不封闭的标签可能会使其停止工作。
我需要读取HTML文件并在其中搜索一些标签。根据结果,一些标签需要被删除,其他标签会被改变,并可能会改进一些属性 - 然后将文件写回。操作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的优点是什么,这应该是完美的。