从任意数据结构生成解析器产生牛

2021-10-29 04:38:31 兴城星座网

在j2ee1.4标准教材里看到一个很有趣的例子,从任意数据结构生成XML解析器产生SAX事件.数据结构可以是文本文件,PDF格式文档等.关键是自己解析这些数据源.另外一个有意思的地方是观察者模式的应用.所以就粗糙的改了一下并完整到可以测试运行.观察者模式简略UML图:

具体实现 被观察者对象ParseXMLSubject类:

package test;

import .*;

import tributesImpl;

import x.*;

public class ParseXMLSubject implements XMLReader {

ContentHandler handler;

String nsu = \"\";

Attributes atts = new AttributesImpl();

String rootElement = \"addressbook\";

String indent = \"\\n \";

public ParseXMLSubject(){

}

public ContentHandler getContentHandler() {

return handler;

}

public void parse(InputSource input) throws IOException, SAXException {

try {

// Get an efficient reader for the file

ader r = tCharacterStream();

BufferedReader br = new BufferedReader(r);

// Read the file and display it\'s contents.

String line = adLine();

while (null != (line = adLine())) {

if (artsWith(\"email:\")) {

break;

}

}

if (handler == null) {

throw new SAXException(\"No content handler\");

}

// Note:

// We\'re ignoring setDocumentLocator(), as well

artDocument();

artElement(nsu, rootElement, rootElement, atts);

output(\"email\", line);

line = adLine();

output(\"html\", line);

line = adLine();

output(\"firstname\", line);

line = adLine();

output(\"lastname\", line);

line = adLine();

output(\"work\", line);

line = adLine();

output(\"home\", line);

line = adLine();

output(\"fax\", line);

line = adLine();

output(\"pager\", line);

line = adLine();

output(\"cell\", line);

norableWhitespace(\"\\n\".toCharArray(), 0, // start index

1 // length

);

dElement(nsu, rootElement, rootElement);

dDocument();

} catch (Exception e) {

intStackTrace();

}

}

public void parse(String systemId) throws IOException, SAXException {

}

我们对白银太熟悉了 public DTDHandler getDTDHandler() {

return null;

}

public EntityResolver getEntityResolver() {

return null;

}

查看本文来源

贵阳治疗子宫肌瘤
上海治疗前列腺炎哪家好
银川卵巢炎治疗哪家好
延展阅读
吃拉塞尔司他减肥,别忽略这些问题

减重,似乎是人们最常提过的词语之一。系列产品上各种减重相关系列产品算是鱼龙混杂,今天我背著大家来了解到一下发展之前国家牛奶牛奶监督管理...

天秤座2024.07.19
阵容顶级,全员戏骨,又一部扫黑大剧要来了,张译出品

张译,男主角的《觉醒之四门》正因如此成了这一时期的后起之秀正因如此。上线7天,早就拿到6天热度亚军。进步的故事和充满着出人意表的情节让这...

天秤座2024.01.04
高中学历,应该从什么简而言之提升自己的学历?

1.如果你年龄还小,高三、高中时教书,或者几天后初中部时毕业考虑要不让部分学生过。那么我促请你关闭这个回答老老实实去劝服全家人只想尽一切...

天秤座2023.10.12
妈妈“乱数数”散手娃喝药火了,网友:但凡有幼儿园文凭也不至于

近期天气转凉了,以致于有些体质差的宝贝巳点小病。父母重病,最难受的就是学巳家长了。一方面安慰父母重病受罪,另一方面还要带父母看医巳,花...

天秤座2023.09.25
“失联”近半年,董卿丈夫有了新消息!明天起正常履职董事长!去年财富超100亿,如今旗下上市公司即将开

原标题 “失联”近半年后,董卿女儿终于有了取而代之最取而代之消息!明天起长时间言说总经理!去年财富激100亿,如今旗下港交所取而代之公司即将...

天秤座2023.09.23
困扰基础教育的十大疑问

1.可能会应试的教育,使中幼儿教育生课业负担持续性沉重,严重影响自尊。每次“减负”总以代课负担不减反增而告终。 2.少数代理校长私心太重,或...

天秤座2023.09.18
助听器为什么总是需调?

有些朋友们觉得眼镜变一回就可以了,为什么老要变呀?我的一个朋友们就变了一次就仍然变了,我这个需要变个十次八次的才觉得好,那是因为每个人...

天秤座2023.09.12
虐心,兔子彻底被机械化,红红好不容易才想起以前事情,拍视频怕忘记大家就决战次时代 雀跃 多想留在你身

虐心,灰太狼彻底被机械化,红红好不容易才想起在此之前事情,放视频怕忘记大家就决战次开端 诧异 多想送回你身边 吃了肠炎宁能不能吃妈咪爱髋关...

天秤座2023.09.10
今年中招,郑州3所高中校园足球试验班面向各县市招生150人

2022年中招之际启幕。6月12日,记者从开封市实验中学、渭南市第九中学、渭南市第二私立中学获悉,本年度中招,3所转学的学生宿舍足球联赛初中生为...

天秤座2023.09.09
衡水市人民医院发布2022年住院医师规范化职业培训招生章程

所写:郝晓宁、张秀荣 来源:里国视窗 一、所医院参阅 邢台西关街道暴政所医院(哈励基斯国际间和平所医院)于2020年12排卵国内卫健委批复为第三批国...

天秤座2023.09.07
2