我一直在学习使用 HtmlCleaner 解析 HTML 的教程,特别是这个:http://xjaphx.wordpress.com/2012/02/04/android-xml-adventure-parsing-html-using-htmlcleaner/
代码的一部分获取一个 url 并修改该页面的 html:
HtmlCleaner htmlCleaner = new HtmlCleaner();
CleanerProperties props = htmlCleaner.getProperties();
props.setAllowHtmlInsideAttributes(false);
props.setAllowMultiWordAttributes(true);
props.setRecognizeUnicodeChars(true);
props.setOmitComments(true);
URL url = new URL(incommingURL);
TagNode root = htmlCleaner.clean(url);
Object[] statsNode = root.evaluateXPath(incommingXPath);
如何正确保存网页,将其存储为 Assets 并实现相同的目标?
谢谢
最佳答案
这是一种可能的方法。抱歉,无法发布任何生产代码。但好消息是,这个想法已经被成功运用。
如果“网页”是指单个文件,只需将其复制到项目中的 Assets 即可。如果有多个文件,请将它们压缩在一起。
请注意,有些帖子中有一些魔法路径可以让您直接访问设备上的 Assets 文件夹。据我所知,这些没有记录,只是巧合。所以我会避免使用它们。
相反,使用 AssetManager (Context.getAssets().open(...)) 获取输入流。将文件复制或解压缩(用 ZipInputStream 包装流,迭代其 ZipEntry 元素)到本地存储 (Context.getFilesDir()) 或 SD 卡 (Context.getExternalFilesDir(...))。
然后将您的网页文件副本的 URL (file://...) 放入 incommingURL。
关于java - 如何正确获取HTML Asset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12471562/