`
pan_java
  • 浏览: 280650 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Htmlparser 得到替换后的文本

阅读更多
需求:替换HTML文件内的全部链接然后得到替换后的HTML文件

考虑采用Htmlparser解析

代码如下

public class DoReplaceHtmlHref implements Callable<String> {

		private String content;

		public DoReplaceHtmlHref(String content) {
			this.content = content;
		}

		public String call() throws Exception {
			Parser myParser = new Parser();
			StringBuffer sbContent = new StringBuffer();

			try {
				myParser.setInputHTML(content);

				//得到页面的所的节点集合
				NodeList nodes = myParser
						.extractAllNodesThatMatch(new NodeFilter() {
							public boolean accept(Node node) {
								return true;
							}
						});

				for (int i = 0; i < nodes.size(); i++) {
					Node node = nodes.elementAt(i);
					//如果为链接节点
					if (node instanceof LinkTag) {
						LinkTag linkTag = (LinkTag) node;
						//设置此链接节点的内容
						sbContent.append("<a href=www.163.com>");			} else if (node instanceof TextNode) {
						//如果为文本节点直接获取内容
						TextNode text = (TextNode) node;
						sbContent.append(text.getText());
					} else {
						//如果为其他节点在文本两端加上<>
						sbContent.append('<');
						sbContent.append(node.getText());
						sbContent.append('>');
					}
				}
			} catch (Exception e) {
				log.error("parse html enode is error");
			}
			return sbContent.toString();
		}

	}
分享到:
评论

相关推荐

    Python编程入门经典

    9.6.1 getopt——从命令行中得到 选项 137 9.6.2 使用一个以上的进程 139 9.6.3 线程——在相同的进程中 完成多个工作 141 9.7 本章小结 143 9.8 习题 144 第10章 创建模块 145 10.1 研究模块 145 10.1.1 导入模块 ...

    JAVA上百实例源码以及开源项目

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    JAVA上百实例源码以及开源项目源代码

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    java开源包1

    7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) ...

    java开源包11

    7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) ...

    java开源包2

    7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) ...

    java开源包3

    7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) ...

    java开源包6

    7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) ...

    java开源包5

    7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) ...

    java开源包10

    7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) ...

    java开源包4

    7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) ...

    java开源包8

    7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) ...

    java开源包7

    7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) ...

    java开源包9

    7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) ...

    java开源包101

    7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) ...

    Java资源包01

    7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) ...

Global site tag (gtag.js) - Google Analytics