Htmlparser置換後のテキストを得る

1522 ワード

需要: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();
		}

	}