`
qq1988627
  • 浏览: 105866 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

页面解析

    博客分类:
  • Java
阅读更多
package com.atom.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class TranFile {

	// public String readFile(String path) {
	// try {
	// File file = new File(path);
	// FileReader reader = null;
	// if (file.exists()) {
	// reader = new FileReader(file);
	// reader.
	//				
	// }
	// } catch (FileNotFoundException e) {
	// e.printStackTrace();
	// }

	public static Map<String, List> map = new HashMap<String, List>();

	public String readHtmlSFTL(String html) {
		String a[] = html.split("<SFTL:");
		List checkList = new ArrayList();
		for (int i = 0; i < a.length; i++) {
			checkList = new ArrayList();
			String s = a[i];
			// System.out.println(s);
			if (s.indexOf(">") >= 0) {
				s = s.substring(0, s.indexOf(">", 1));
			} else
				continue;
			html = html.replaceAll("<SFTL:" + s, "-");
			// System.out.println("=====++"+s);
			if (!StringUtil.isEmpty(a[i])) {
				String[] a2 = a[i].split(" ");
				// checkList = new ArrayList();
				String pName = "";
				for (int j = 0; j < a2.length; j++) {
					String s2 = a2[j];
					if (j == 0) {
						pName = "SFTL:" + s2;
						pName = pName.trim();
					}
					// if(a2[0].equals("Sections"))
					// System.out.println(s+"==s2"+s2);
					html = html.replaceAll("</" + pName + ">", "");
					if (!StringUtil.isEmpty(s2)) {
						if (s2.indexOf("=") > 0) {
							String[] s3 = s2.split("=");

							if (null != map.get(pName)) {
								checkList = map.get(pName);
								if (null != checkList && checkList.size() >= 0) {

									if (!checkList.contains(s3[0].trim())) {
										checkList.add(s3[0].trim());
										if (pName.equals("SFTL:Sections"))
											System.out.println(s3[0]);
									}
								} else {
									checkList = new ArrayList();
									checkList.add(s3[0].trim());

								}
							} else {
								// checkList = new ArrayList();
								checkList.add(s3[0].trim());

							}
						}

					}
				}
				map.put(pName, checkList);
			}

		}
		// System.out.println("====="+html);
		html = html.replaceAll("</form>", "");
		return html;
	}

	public String readHtmlSFTD(String html) {
		if (html.indexOf("<SFTD:") == -1)
			return "";
		String a[] = html.split("<SFTD:");
		List checkList = new ArrayList();
		for (int i = 0; i < a.length; i++) {
			checkList = new ArrayList();
			String s = a[i];
			// System.out.println(s);
			if (s.indexOf(">") >= 0) {
				s = s.substring(0, s.indexOf(">", 1));
			} else
				continue;
			html = html.replaceAll("<SFTD:" + s, "-");
			// System.out.println("=====++"+s);
			if (!StringUtil.isEmpty(a[i])) {
				String[] a2 = a[i].split(" ");
				// checkList = new ArrayList();
				String pName = "";
				for (int j = 0; j < a2.length; j++) {
					String s2 = a2[j];
					if (j == 0) {
						pName = "SFTD:" + s2;
						pName = pName.trim();
					}
					// if(a2[0].equals("Sections"))
					// System.out.println(s+"==s2"+s2);
					html = html.replaceAll("</" + pName + ">", "");
					if (!StringUtil.isEmpty(s2)) {
						if (s2.indexOf("=") > 0) {
							String[] s3 = s2.split("=");

							if (null != map.get(pName)) {
								checkList = map.get(pName);
								if (null != checkList && checkList.size() >= 0) {

									if (!checkList.contains(s3[0].trim())) {
										checkList.add(s3[0].trim());
									}
								} else {
									checkList = new ArrayList();
									checkList.add(s3[0].trim());

								}
							} else {
								// checkList = new ArrayList();
								checkList.add(s3[0].trim());

							}
						}

					}
				}
				map.put(pName, checkList);
			}

		}
		// System.out.println("====="+html);
		html = html.replaceAll("</form>", "");
		return html;
	}

	public String readFile(File file) {
		String data = "";
		try {
			// File file = new File(path);
			if (file.exists()) {
				FileInputStream fs = new FileInputStream(file);
				InputStreamReader is = new InputStreamReader(fs);
				BufferedReader br = new BufferedReader(is);
				String str = "";
				while ((str = br.readLine()) != null) {
					data += str;
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return data;
	}

	

	private static void readTld() {
		TranFile f = new TranFile();
		String s = "";
		File file = new File("E:\\workspace\\project2009-2\\asitom\\doc\\ats\\");
		File[] fall = file.listFiles();
		for (int i = 0; i < fall.length; i++) {
			File fi = fall[i];
			if (fi.getName().indexOf("List") == -1
					&& !fi.getName().equals("Welcome")) {
				s = f.readFile(fi);
				s = s.replaceAll("'", "");
				s = s.replaceAll("\"", "'");
				s = s.replaceAll("[\\s]", " ");
				s = s.replaceAll("  ", " ");
				// s =s.replaceAll("[<div]*[>]", "");
				// s = s.replaceAll("", "");
				s = s.replaceAll("\\\\", "");
				s = s.replaceAll("<p>", "");
				s = s.replaceAll("</p>", "");
				s = s.replaceAll("<hr>", "");
				s = s.replaceAll("</hr>", "");

				// s = s.replaceAll("RegularExpression", "Reg");
				s = s.replaceAll("(')[^=]*(')", "''");
				if (s.indexOf("<SFTL:") >= 0) {
					s = s.substring(s.indexOf("<SFTL:", 1), s.length());
				} else
					continue;
				s = s.replaceAll("(<SFTL)[^>]*(>)", "");
				s = s.replaceAll("(</SFTL:)[^>]*(>)", "");
				// s = s.replaceAll("(<SFTD)[^>]*(>)", "");
				s = s.replaceAll("(</SFTD)[^>]*(>)", "");
				s = s.replaceAll("(<form)[^>]*(>)", "");
				s = s.replaceAll("</form>", "");
				s = s.replaceAll("(<div)[^>]*(>)", "");
				s = s.replaceAll("</div>", "");
				s = s.replaceAll("(<h2)[^>]*(>)", "");
				s = s.replaceAll("</h2>", "");
				s = s.replaceAll("(<a)[^>]*(>)", "");
				s = s.replaceAll("</a>", "");
				s = s.replaceAll("(<table)[^>]*(>)", "");
				s = s.replaceAll("</table>", "");
				s = s.replaceAll("(<tr)[^>]*(>)", "");
				s = s.replaceAll("</tr>", "");
				s = s.replaceAll("(<td)[^>]*(>)", "");
				s = s.replaceAll("</td>", "");
				s = s.replaceAll("(<img)[^>]*(>)", "");
				s = s.replaceAll("</img>", "");
				s = s.replaceAll("(<span)[^>]*(>)", "");
				s = s.replaceAll("</span>", "");
				s = s.replaceAll("(<li)[^>]*(>)", "");
				s = s.replaceAll("</li>", "");

				System.out.println("====" + s);
				// s = s.replaceAll("<%@", "");
				// s = s.replaceAll("%>", "");
				// String html = f.readHtmlSFTL(s);
				String html = f.readHtmlSFTD(s);
				// html = html.replaceAll("->", "");
				// html = html.replaceAll("<form id='Form1' method='post' >",
				// "");
				// //System.out.println("--------"+html);
				// f.readHtmlSFTD(html);
			}
		}

		// Set set = map.keySet();
		// String out = "";
		// for (Iterator iterator = set.iterator(); iterator.hasNext();) {
		// String obj = (String) iterator.next();
		// out = "";
		// out = obj.toString() + "=";
		// List<String> list = map.get(obj.toString());
		// for (String sb : list) {
		// out += "+" + sb;
		// }
		// System.out.println(out);
		// }
		// f.writeCap();
		f.writeNewFile();
	}

	private void writeCap() {
		Set set = map.keySet();
		String out = "";
		for (Iterator iterator = set.iterator(); iterator.hasNext();) {
			String obj = (String) iterator.next();
			List<String> list = map.get(obj.toString());
			for (String sb : list) {
				if (!StringUtil.isEmpty(sb)) {
					if (sb.charAt(0) >= 65 && sb.charAt(0) <= 90
							&& sb.charAt(1) >= 97 && sb.charAt(1) <= 122)
						out += "   " + sb;
				}

			}
			System.out.println(out);
		}

	}

	
	private void readJSP(){
		TranFile f = new TranFile();
		String s = "";
		File file = new File("E:\\workspace\\project2009-2\\asitom\\doc\\ats\\");
		File[] fall = file.listFiles();
		for (int i = 0; i < fall.length; i++) {
			File fi = fall[i];
			s = f.readFile(fi);
			
			s = s.replaceAll("<SFTL:Page ", "<SFFF:Page ");
			s = s.replaceAll("</SFTL:Page>", "</SFFF:Page>");
			s = s.replaceAll("(<SFTL:)[^>]*(>)", "");
			s = s.replaceAll("(</SFTL:)[^>]*(>)", "");
			s = s.replaceAll("<SFFF:Page ", "<SFTL:Page ");
			s = s.replaceAll("</SFFF:Page>", "</SFTL:Page>");
			s = s.replaceAll(">", ">\n");
			s = s.replaceAll("defaultvalue", "defaultValue");
			f.writeNewJsp("", fi.getName(), s);
			}
	}
	
	private void writeNewJsp(String folder, String name, String s) {
		try {
			String path = "D:\\asitom\\" + name;
			File file = new File(path);
			if (!file.exists()){
				file.createNewFile();
				PrintWriter pt = new PrintWriter(file);
				pt.write(s);
				pt.close();
			}
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

	private void writeNewFile() {
		Set set = map.keySet();
		try {
			String out = "";
			for (Iterator iterator = set.iterator(); iterator.hasNext();) {
				String obj = (String) iterator.next();
				out = "";
				out = obj.toString();
				out = out.substring(out.indexOf(":") + 1, out.length());
				File file = new File(
						"E:/workspace/project2009-2/asitom/doc/tagtd/" + out
								+ "Tag.java");
				if (!file.exists())
					file.createNewFile();
				PrintWriter pt = new PrintWriter(file);
				pt.write("package j2ee.tag;\n");
				pt.write("import java.io.IOException;\n");
				pt.write("import javax.servlet.http.HttpServletRequest;\n");
				pt.write("import javax.servlet.jsp.JspException;\n");
				pt.write("import javax.servlet.jsp.JspTagException;\n");
				pt.write("import javax.servlet.jsp.JspWriter;\n");
				pt.write("import javax.servlet.jsp.tagext.BodyContent;\n");
				pt.write("import javax.servlet.jsp.tagext.BodyTagSupport;\n");
				pt.write("public class " + out
						+ "Tag extends BodyTagSupport{\n");
				pt
						.write("public int doStartTag() throws JspTagException{\nreturn EVAL_PAGE;\n}\n");
				pt
						.write("public int doEndTag() throws JspTagException{\nreturn EVAL_PAGE;\n}\n");
				List<String> list = map.get(obj.toString());
				for (String sb : list) {
					if (!StringUtil.isEmpty(sb)) {
						if (sb.charAt(0) >= 65 && sb.charAt(0) <= 90
								&& sb.charAt(1) >= 97 && sb.charAt(1) <= 122) {
							char tmp = sb.charAt(0);
							tmp = (char) ((int) tmp + 32);
							sb = tmp + sb.substring(1, sb.length());
						}
						pt.write("private String " + sb + ";\n");
					}
				}
				pt.write("}");
				pt.close();
				// System.out.println(out);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	
	public static void main(String[] args) {
		TranFile f = new TranFile();
		f.readJSP();
		
		

	}
	
	public static void main2(String[] args) {
//		System.out.println((int) 'a');
//		System.out.println((int) 'z');
//		System.out.println((int) 'A');
//		System.out.println((int) 'Z');

		String ss = "<SFTL:PageFrame  id=\"PageFrame\">" +
				"   <SFTL:PanelControl  id=\"FavoritesFilterPanel\" name=\"FavoritesFilterPanel\" permissionBit=\"0\" hasMinimize=\"true\" hasPrint=\"false\" hasReset=\"false\" isMinimized=\"true\" tip=\"最大化/最小化\" instruction=\"Click a Favorite's arrow to display its data in the Summary view. Click a Favorite's name to view it in the Choices section.\" isHidden=\"true\">" +
						"<SFTL:BarFooter  id=\"TaskPaneFooter\" name=\"TaskPaneFooter\"></SFTL:PageFrame>";
		ss = ss.replaceAll("<SFTL:Page ", "<SFFF:Page ");
		ss = ss.replaceAll("</SFTL:Page>", "</SFFF:Page>");
		System.out.println(ss);
		ss = ss.replaceAll("(<SFTL:)[^>]*(>)", "");
		ss = ss.replaceAll("(</SFTL:)[^>]*(>)", "");
		ss = ss.replaceAll("<SFFF:Page ", "<SFTL:Page ");
		ss = ss.replaceAll("</SFFF:Page>", "</SFTL:Page>");
		ss = ss.replaceAll(">", ">\n");
	//	ss = ss.replaceAll("(<SFTL)[^>]*(>)", "--");
		System.out.println(ss);
	}
}
 
分享到:
评论

相关推荐

    用c++ 进行网页 解析

    在IT领域,C++是一种强大的编程语言,常用于构建高性能的应用程序。对于“用C++进行网页解析”这个主题,我们需要深入理解网络通信基础、HTML结构...通过合理选择和运用库,可以构建出高效且功能强大的网页解析工具。

    e语言-网页解析引擎的封装调用

    程序集 网页解析引擎 .程序集变量 集_网页内容, 文本型 .程序集变量 引擎句柄, 整数型 .子程序 _初始化, , , 当基于本类的对象被创建后,此方法会被自动调用 引擎句柄 = 0 .子程序 _销毁, ...

    htmlparser_Java网页解析器

    `htmlparser_Java网页解析器`是一个用于处理和解析HTML文档的Java库,它使得开发者能够方便地在Java应用程序中提取和操作HTML内容。这个压缩包包含了一系列必要的类和资源,用户可以将其导入到自己的Java工程中直接...

    mfc 简易网页解析器

    标题"MFC简易网页解析器"涉及的是在...总之,"MFC简易网页解析器"是一个学习MFC和字符串处理的入门实例,对于初学者理解C++和MFC的基础应用非常有价值,但要处理复杂的网页解析任务,可能需要更高级的技术和工具。

    基于Python爬虫技术的网页解析与数据获取研究.pdf

    本研究为网络爬虫在网页解析与数据获取方面的应用提供了详细的方法介绍和操作指导,不仅适用于科研人员,也为软件开发工程师在进行相关工作时提供了宝贵的参考。同时,本研究还着重指出了Python在网络爬虫领域的巨大...

    包含html页面解析的网络爬虫程序C#实现

    1. **HTML页面解析**:HTML是网页的主要标记语言,包含了各种标签来定义页面结构。在C#中,可以使用库如HtmlAgilityPack或AngleSharp来解析HTML文档。这些库提供API来解析HTML,将其转换为DOM(Document Object ...

    WPF版网页解析软件源码

    《WPF技术构建的网页解析与下载工具》 在当今互联网时代,数据挖掘与信息获取变得至关重要。WPF(Windows Presentation Foundation)作为一种强大的Windows应用程序开发框架,为开发者提供了丰富的界面设计和图形...

    delphi网页解析类,主要针对idhttp等方式获取的源码进行解析(原创)

    非常小巧实用的网页解析类,在delphi 10.2下编译通过,主要方法:getElementByid getElementsByTagName(aTag : string) getElementByTagNameAndFlag getElementsByClassName 标签主要属性:innerText , innerHTML ...

    网页解析文档

    网页解析是IT领域中一个关键的概念,特别是在网络爬虫、自动化测试和数据分析等场景中扮演着重要角色。在这个过程中,我们需要获取和理解HTML、CSS、JavaScript等构成网页的主要元素,以便提取所需信息或进行交互...

    zhoucong.rar_下载 网页 资源_网页解析_资源下载

    标题“zhoucong.rar_下载 网页 资源_网页解析_资源下载”表明这是一个关于网页资源解析和下载的压缩包文件,其中可能包含了一系列与网页抓取、解析和下载相关的工具或教程。从描述来看,该资源旨在帮助用户理解和...

    firedebug lite,网页解析助手

    "firedebug lite,网页解析助手"是一款用于网页分析和爬虫辅助的工具,它能够帮助用户深入理解网页结构,提取所需信息。这款工具通常以.crx扩展名的形式提供,是谷歌浏览器Chrome的一种扩展插件。下面我们将详细探讨...

    htmlparser(HTML页面解析)例子

    在本例中,我们将深入探讨如何使用HTMLParser库解析HTML页面,提取所需信息。 首先,我们需要导入Python的`HTMLParser`模块。在Python 3中,这个模块已经被重命名为`html.parser`,因此应该导入`html.parser`,而...

    HTML网页内容解析器源码

    HTML网页内容解析器源码是用于处理和理解HTML(HyperText Markup Language)文档的软件组件。在Delphi编程环境中,这种源码可以帮助开发者提取、分析和操作网页中的数据。HTML是一种标记语言,常用于创建网页,它...

    htmparser网页解析API文档

    HTMLParser是一款在Android和Java开发中广泛使用的库,主要用于解析HTML文档,提取所需的数据或进行网页内容的处理。这个API文档包含了对HTMLParser库的详细使用说明,是开发者理解和运用该库的重要参考资料。 HTML...

    控制与访问网页元素.rar_VC6_vc++_控制与访问网页元素_网页_网页解析

    网页解析则是获取HTML源代码并分析其结构的过程,这一步通常用于提取特定数据或自动化测试。在C++中,没有内置的HTML解析库,但可以借助第三方库,如libxml2或TinyXML,它们可以解析HTML文档并提供API来遍历和操作...

    页面解析类htmlApi

    "页面解析类htmlApi"指的是一个专门针对HTML页面解析的API集合,它为开发者提供了方便的接口和方法,使得初学者也能轻松地对网页数据进行操作。本篇将详细介绍这类API的常见功能、用途及其在实际开发中的应用。 1. ...

    iteye 博客抓取 网页解析 关键字提取

    iteye博客抓取 网页解析 关键字提取 jsoup解析网页 包含数据库文件

    java解析网页

    在这个例子中,`parsedData1`和`parsedData2`是从网页解析出的数据,它们被插入到Oracle数据库的`my_table`表中。 总结来说,Java结合Jsoup和Httpclient库可以高效地解析和抓取网页信息,再通过JDBC与Oracle数据库...

    全国区号页面解析

    全国区号页面解析是一项常见的数据抓取任务,用于获取各个地区的电话区号信息。在这个过程中,我们主要关注的是如何从指定的网页中提取所需的数据并将其转化为结构化的XML格式。这里,我们用到了一个名为...

Global site tag (gtag.js) - Google Analytics