当前位置: 首页 > news >正文

通过webview加载进来html,如何将HTML模板加载到WebView中?

您可以使用HTMLCleaner从WebView获取HTML作为DOM并通过TagNodes进行更改。一个示例如何使用HTMLCLeaner来获取节点的某个属性。你应该在AsyncTask中执行此操作,这样它就不会阻止ui。

public static String snapFromCleanedHTMLWithXPath(String stringURL, String xPath, String attrToStrip) {

String snap = "";

// create an instance of HtmlCleaner

HtmlCleaner cleaner = new HtmlCleaner();

// take default cleaner properties

CleanerProperties props = cleaner.getProperties();

props.setAllowHtmlInsideAttributes(true);

props.setAllowMultiWordAttributes(true);

props.setRecognizeUnicodeChars(true);

props.setOmitComments(true);

// open a connection to the desired URL

URL url;

try {

url = new URL(stringURL);

URLConnection conn = url.openConnection();

// use the cleaner to "clean" the HTML and return it as a TagNode object

TagNode root = cleaner.clean(new InputStreamReader(conn.getInputStream()));

Object[] foundNodes = root.evaluateXPath(xPath);

if (foundNodes.length > 0) {

// casted to a TagNode

TagNode foundNode = (TagNode) foundNodes[0];

snap = foundNode.getAttributeByName(attrToStrip);

}

} catch (MalformedURLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (XPatherException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

cleaner = null;

props = null;

url = null;

return snap;

}

相关文章:

  • TD无线座机将何去何从?
  • 苹果手机html吊起拍照,苹果手机拍照教程,教你如何用iPhone拍出大片
  • INDEX_STATS
  • 台式计算机如何升级,老电脑如何升级 老电脑升级方法【详细介绍】
  • 由修桌子引发的思考_小事现大智
  • 怎么设置台式计算机密码忘了,电脑开机密码忘记怎么办 多种方法轻松解决【图文教程】...
  • 在外部JS文件中获得asp.net控件的clientid
  • 求职信英语计算机作文,英语作文-求职信(范文)
  • C++ 中的反射
  • wkwebview 会缓存html,ios – 设备上的WKWebView无法加载缓存的HTML
  • 用计算机语言拜年,鸡年大吉!22种编程语言大拜年
  • 计算机专业英语教学重难点,浅析计算机专业英语的教学现状及对策
  • 博客PV突破300万暨两次线上活动圆满结束
  • vue html5播放流媒体,关于视频播放器:H5播放Rtmp之vuevideoplayer播放播放
  • protected,internal和protected internal
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • FineReport中如何实现自动滚屏效果
  • Java读取Properties文件的六种方法
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 构造函数(constructor)与原型链(prototype)关系
  • 那些年我们用过的显示性能指标
  • 区块链分支循环
  • 想写好前端,先练好内功
  • 用Python写一份独特的元宵节祝福
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • k8s使用glusterfs实现动态持久化存储
  • 湖北分布式智能数据采集方法有哪些?
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​决定德拉瓦州地区版图的关键历史事件
  • #13 yum、编译安装与sed命令的使用
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (接口自动化)Python3操作MySQL数据库
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • ./configure,make,make install的作用
  • .gitignore文件---让git自动忽略指定文件
  • .net 按比例显示图片的缩略图
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • @SentinelResource详解
  • @TableLogic注解说明,以及对增删改查的影响
  • [ajaxupload] - 上传文件同时附件参数值
  • [BUUCTF 2018]Online Tool
  • [BZOJ1178][Apio2009]CONVENTION会议中心
  • [C#基础知识]专题十三:全面解析对象集合初始化器、匿名类型和隐式类型
  • [C++]——带你学习类和对象
  • [C语言]编译和链接
  • [flask]http请求//获取请求体数据
  • [HCTF 2018]WarmUp (代码审计)
  • [hive]中的字段的数据类型有哪些
  • [HTML]Web前端开发技术18(HTML5、CSS3、JavaScript )HTML5 基础与CSS3 应用——喵喵画网页
  • [JavaScript]_[初级]_[关于forin或for...in循环语句的用法]