在String中,我存储HTML文件的原始内容。在此文件中包含以下内容:
<div class="input-wrapper">
<input type="search" name="search" placeholder="page" title="Page" accesskey="f" id="searchInput" class="search" autocomplete="off" readonly="">
</div>
我想删除它,以及:
<div><a title="Open main menu" href="/wiki/Special:MobileMenu" class="mw-ui-icon mw-ui-icon-element mw-ui-icon-mainmenu main-menu-button" id="mw-mf-main-menu-button">Open main menu</a></div>
这样做有简单的操作吗?或者将整个文件标记为更好?
答案 0 :(得分:0)
您可以使用Sri建议的HTML解析器库,如果您要进一步操作HTML,或者如果您不能保证HTML不会改变,我建议您使用它。未来。虽然如果您只是删除特定的HTML,那么您可以使用正则表达式作为更轻松的替代方案。
do
{
let html = "<html> ... </html>"
let regex:NSRegularExpression = try NSRegularExpression(pattern: "<div\\s*(?:class=\"input-wrapper\")?>\\s*(?:<input type=\"search\" name=\"search\" placeholder=\"page\" title=\"Page\" accesskey=\"f\" id=\"searchInput\" class=\"search\" autocomplete=\"off\" readonly=\"\">)?(?:<a title=\"Open main menu\" href=\"\\/wiki\\/Special:MobileMenu\" class=\"mw\\-ui\\-icon mw\\-ui\\-icon\\-element mw\\-ui\\-icon\\-mainmenu main\\-menu\\-button\" id=\"mw\\-mf\\-main\\-menu\\-button\">Open main menu<\\/a>)?\\s*<\\/div>", options: NSRegularExpression.Options.caseInsensitive)
let range = NSMakeRange(0, html.characters.count)
let htmlStripped:String = regex.stringByReplacingMatches(in: html, options: NSRegularExpression.MatchingOptions(), range:range , withTemplate: "")
}
catch
{
// ...
}
尚未完全测试,Swift 3.0。