- 浏览: 2482452 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
nation:
你好,在部署Mesos+Spark的运行环境时,出现一个现象, ...
Spark(4)Deal with Mesos -
sillycat:
AMAZON Relatedhttps://www.godad ...
AMAZON API Gateway(2)Client Side SSL with NGINX -
sillycat:
sudo usermod -aG docker ec2-use ...
Docker and VirtualBox(1)Set up Shared Disk for Virtual Box -
sillycat:
Every Half an Hour30 * * * * /u ...
Build Home NAS(3)Data Redundancy -
sillycat:
3 List the Cron Job I Have>c ...
Build Home NAS(3)Data Redundancy
Digester快速解析XML数据
使用到了org.apache.commons.digester.Digester
一些配置和一些字典型的数据,用XML的形式存放在classpath里面,比较方便,开发也比较快速。
先看看要解析的XML文件helpContent_data.xml:
<helpColumn>
<!-- 首页 -->
<helpContent pageUrl="index.jsp" pageCode="1" linkUrl="#" title="如何注册?" desn="首页。<br />2) 点击“注册”" />
<helpContent pageUrl="index.jsp" pageCode="1" linkUrl="#" title="如何添加新设备?" desn="添加新设备成功。" />
<helpContent pageUrl="index.jsp" pageCode="1" linkUrl="#" title="如何实现设备报警?" desn="进入“报警配置”编辑。" />
<helpContent pageUrl="index.jsp" pageCode="1" linkUrl="#" title="如何进入用户管理系统?" desn="进入“系统”" />
<helpContent pageUrl="index.jsp" pageCode="1" linkUrl="#" title="提供哪些服务?如何申请服务?" desn="点击“服务”" />
</helpColumn>
就是一个符合XML规范的XML文件。
另外定义了两个DO来对应helpColumn根和helpContent元素
HelpContent.java如下:
package com.megaeyes.ipcamera.dao.model;
public class HelpContent {
private Integer id;
private String pageUrl;
private String pageCode;
private String linkUrl;
private String title;
private String desn;
}
就是一个纯净的POJO。对应了XML里面helpContent的每一个元素。
HelpColumn.java如下:
package com.megaeyes.ipcamera.dao.model;
import java.util.ArrayList;
import java.util.List;
public class HelpColumn {
private String name;
List helpContents = new ArrayList();
public void addHelpContent(HelpContent helpContent) {
helpContents.add(helpContent);
}
public List getHelpContents() {
return helpContents;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
数据和存放数据的类都准备好了,下面就是解析XML的实现类了,XmlSaxManagerImpl.java:
package com.megaeyes.ipcamera.service.impl;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.digester.Digester;
import org.xml.sax.SAXException;
import com.megaeyes.ipcamera.dao.model.HelpColumn;
import com.megaeyes.ipcamera.dao.model.HelpContent;
import com.megaeyes.ipcamera.service.iface.XmlSaxManager;
public class XmlSaxManagerImpl extends BaseManager implements XmlSaxManager {
private static final String isConfigFile = "helpContent_data.xml";
private HelpColumn helpColumn;
public void init() {
Digester digester = new Digester();
digester.setValidating(false);
digester.addObjectCreate("helpColumn",
"com.megaeyes.ipcamera.dao.model.HelpColumn");
digester.addSetProperties("helpColumn");
digester.addObjectCreate("helpColumn/helpContent",
"com.megaeyes.ipcamera.dao.model.HelpContent");
digester.addSetProperties("helpColumn/helpContent");
digester.addSetNext("helpColumn/helpContent", "addHelpContent",
"com.megaeyes.ipcamera.dao.model.HelpContent");
try {
InputStream in = this.getClass()
.getClassLoader().getResourceAsStream(isConfigFile);
// 采用classloader的方式,把xml文件放classpath里面就可以读到
helpColumn = (HelpColumn) digester.parse(in);
} catch (IOException ioe) {
ioe.printStackTrace();
} catch (SAXException se) {
se.printStackTrace();
}
}
public HelpColumn getHelpColumn() {
return helpColumn;
}
public List getHelpContents(String pageCode) {
List reList = null;
if (helpColumn != null && helpColumn.getHelpContents() != null
&& !helpColumn.getHelpContents().isEmpty()) {
reList = new ArrayList();
for (int i = 0; i < helpColumn.getHelpContents().size(); i++) {
HelpContent content = (HelpContent) helpColumn
.getHelpContents().get(i);
reList.add(content);
}
}
return reList;
}
public static void main(String[] args) {
XmlSaxManagerImpl impl = new XmlSaxManagerImpl();
impl.init();
List list = impl.getHelpContents("1");
for(int i = 0;i<list.size();i++){
HelpContent content = (HelpContent)list.get(i);
System.out.println(content.getTitle());
System.out.println(content.getDesn());
}
}
}
使用到了org.apache.commons.digester.Digester
一些配置和一些字典型的数据,用XML的形式存放在classpath里面,比较方便,开发也比较快速。
先看看要解析的XML文件helpContent_data.xml:
<helpColumn>
<!-- 首页 -->
<helpContent pageUrl="index.jsp" pageCode="1" linkUrl="#" title="如何注册?" desn="首页。<br />2) 点击“注册”" />
<helpContent pageUrl="index.jsp" pageCode="1" linkUrl="#" title="如何添加新设备?" desn="添加新设备成功。" />
<helpContent pageUrl="index.jsp" pageCode="1" linkUrl="#" title="如何实现设备报警?" desn="进入“报警配置”编辑。" />
<helpContent pageUrl="index.jsp" pageCode="1" linkUrl="#" title="如何进入用户管理系统?" desn="进入“系统”" />
<helpContent pageUrl="index.jsp" pageCode="1" linkUrl="#" title="提供哪些服务?如何申请服务?" desn="点击“服务”" />
</helpColumn>
就是一个符合XML规范的XML文件。
另外定义了两个DO来对应helpColumn根和helpContent元素
HelpContent.java如下:
package com.megaeyes.ipcamera.dao.model;
public class HelpContent {
private Integer id;
private String pageUrl;
private String pageCode;
private String linkUrl;
private String title;
private String desn;
}
就是一个纯净的POJO。对应了XML里面helpContent的每一个元素。
HelpColumn.java如下:
package com.megaeyes.ipcamera.dao.model;
import java.util.ArrayList;
import java.util.List;
public class HelpColumn {
private String name;
List helpContents = new ArrayList();
public void addHelpContent(HelpContent helpContent) {
helpContents.add(helpContent);
}
public List getHelpContents() {
return helpContents;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
数据和存放数据的类都准备好了,下面就是解析XML的实现类了,XmlSaxManagerImpl.java:
package com.megaeyes.ipcamera.service.impl;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.digester.Digester;
import org.xml.sax.SAXException;
import com.megaeyes.ipcamera.dao.model.HelpColumn;
import com.megaeyes.ipcamera.dao.model.HelpContent;
import com.megaeyes.ipcamera.service.iface.XmlSaxManager;
public class XmlSaxManagerImpl extends BaseManager implements XmlSaxManager {
private static final String isConfigFile = "helpContent_data.xml";
private HelpColumn helpColumn;
public void init() {
Digester digester = new Digester();
digester.setValidating(false);
digester.addObjectCreate("helpColumn",
"com.megaeyes.ipcamera.dao.model.HelpColumn");
digester.addSetProperties("helpColumn");
digester.addObjectCreate("helpColumn/helpContent",
"com.megaeyes.ipcamera.dao.model.HelpContent");
digester.addSetProperties("helpColumn/helpContent");
digester.addSetNext("helpColumn/helpContent", "addHelpContent",
"com.megaeyes.ipcamera.dao.model.HelpContent");
try {
InputStream in = this.getClass()
.getClassLoader().getResourceAsStream(isConfigFile);
// 采用classloader的方式,把xml文件放classpath里面就可以读到
helpColumn = (HelpColumn) digester.parse(in);
} catch (IOException ioe) {
ioe.printStackTrace();
} catch (SAXException se) {
se.printStackTrace();
}
}
public HelpColumn getHelpColumn() {
return helpColumn;
}
public List getHelpContents(String pageCode) {
List reList = null;
if (helpColumn != null && helpColumn.getHelpContents() != null
&& !helpColumn.getHelpContents().isEmpty()) {
reList = new ArrayList();
for (int i = 0; i < helpColumn.getHelpContents().size(); i++) {
HelpContent content = (HelpContent) helpColumn
.getHelpContents().get(i);
reList.add(content);
}
}
return reList;
}
public static void main(String[] args) {
XmlSaxManagerImpl impl = new XmlSaxManagerImpl();
impl.init();
List list = impl.getHelpContents("1");
for(int i = 0;i<list.size();i++){
HelpContent content = (HelpContent)list.get(i);
System.out.println(content.getTitle());
System.out.println(content.getDesn());
}
}
}
发表评论
-
Update Site will come soon
2021-06-02 04:10 1609I am still keep notes my tech n ... -
Portainer 2020(4)Deploy Nginx and Others
2020-03-20 12:06 375Portainer 2020(4)Deploy Nginx a ... -
Private Registry 2020(1)No auth in registry Nginx AUTH for UI
2020-03-18 00:56 370Private Registry 2020(1)No auth ... -
Docker Compose 2020(1)Installation and Basic
2020-03-15 08:10 323Docker Compose 2020(1)Installat ... -
VPN Server 2020(2)Docker on CentOS in Ubuntu
2020-03-02 08:04 396VPN Server 2020(2)Docker on Cen ... -
Nginx Deal with OPTIONS in HTTP Protocol
2020-02-15 01:33 296Nginx Deal with OPTIONS in HTTP ... -
PDF to HTML 2020(1)pdftohtml Linux tool or PDFBox
2020-01-29 07:37 339PDF to HTML 2020(1)pdftohtml Li ... -
Elasticsearch Cluster 2019(2)Kibana Issue or Upgrade
2020-01-12 03:25 591Elasticsearch Cluster 2019(2)Ki ... -
Spark Streaming 2020(1)Investigation
2020-01-08 07:19 228Spark Streaming 2020(1)Investig ... -
Hadoop Docker 2019 Version 3.2.1
2019-12-10 07:39 255Hadoop Docker 2019 Version 3.2. ... -
MongoDB 2019(3)Security and Auth
2019-11-16 06:48 201MongoDB 2019(3)Security and Aut ... -
MongoDB 2019(1)Install 4.2.1 Single and Cluster
2019-11-11 05:07 247MongoDB 2019(1) Follow this ht ... -
Monitor Tool 2019(1)Monit Installation and Usage
2019-10-17 08:22 280Monitor Tool 2019(1)Monit Insta ... -
Ansible 2019(1)Introduction and Installation on Ubuntu and CentOS
2019-10-12 06:15 268Ansible 2019(1)Introduction and ... -
Timezone and Time on All Servers and Docker Containers
2019-10-10 11:18 288Timezone and Time on All Server ... -
Kafka Cluster 2019(6) 3 Nodes Cluster on CentOS7
2019-10-05 23:28 235Kafka Cluster 2019(6) 3 Nodes C ... -
K8S Helm(1)Understand YAML and Kubectl Pod and Deployment
2019-10-01 01:21 286K8S Helm(1)Understand YAML and ... -
Rancher and k8s 2019(5)Private Registry
2019-09-27 03:25 320Rancher and k8s 2019(5)Private ... -
Jenkins 2019 Cluster(1)Version 2.194
2019-09-12 02:53 399Jenkins 2019 Cluster(1)Version ... -
Redis Cluster 2019(3)Redis Cluster on CentOS
2019-08-17 04:07 333Redis Cluster 2019(3)Redis Clus ...
相关推荐
java 解析xml文件 digester 将xml转换为java数据 digester jar 包
解析使用的xml文件在"参与者基础数据-4月.zip",sql语句就不贴了,如果是测试digester只需将dao层改一下,不要连接数据库,不同数据库创表好麻烦,如果需要存入数据库可以自行创建。
用来读写xml的组件很多,比如dom4j, sax, JDom,Digester等,但是很多组件用起来很麻烦,今天给大家推荐一个超级简单的组件JOX, JOX是一套用户XML document和Java beans之间进行数据传递的JAVA类库。...
首先通过Apache Digester解析表单的XML结构化配置,将实例化的配置信息交由动态查询引擎处理,动态查询引擎结合配置信息通过SQL、HQL、接口查询获取数据.最后将配置和数据以JSON格式传给客户端处理,以二次封装改进...
Hibernate使用dom4j解析XML配置文件和XML映射元文件。必需的。 ehcache-1.2.jar Hibernate可以使用不同cache缓存工具作为二级缓存。EHCache是缺省的cache缓存工具。如果没有其它的可选缓存工具,则为必需的。 ...
Xanot是XOM(从Xml到Object Mapper)。 与众所周知的Apache Digester非常相似。 但是它使用了Java 5注释功能。 这样,这些类可以“告诉”解析器如何将xml数据映射到其对象模型中。
XML XML语法、XML解析(SAX、DOM)、Dom4j组件、Digester组件。 熟练掌握XML语法规则;理解DOM模型;熟悉Java对XML的各种解析方式。 实训项目三:T-DMS V2项目开发 第四阶段(以T-NetCTOSS电信计费系统贯穿) ...
Hibernate使用dom4j解析XML配置文件和XML映射元文件。必需的。 ehcache-1.2.jar Hibernate可以使用不同cache缓存工具作为二级缓存。EHCache是缺省的cache缓存工具。如果没有其它的可选缓存工具,则为必需的。 ...
commons-digester XML 文件到 Java 对象的映射机制 commons-discovery 提供工具来定位资源 (包括类) ,通过使用各种模式来映射服务/引用名称和资源名称。 commons-el 提供在JSP2.0规范中定义的EL表达式的解释器. ...
commons-digester XML 文件到 Java 对象的映射机制 commons-discovery 提供工具来定位资源 (包括类) ,通过使用各种模式来映射服务/引用名称和资源名称。 commons-el 提供在JSP2.0规范中定义的EL表达式的解释器. ...