从任意数据结构生成解析器产生牛
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