JDOM操作XML
来源:互联网 发布:产品效果图制作软件 编辑:程序博客网 时间:2024/06/02 17:20
准备工作
官网:http://www.jdom.org/
API:http://www.jdom.org/docs/apidocs/index.html
可扩展标记语言——eXtensible Markup Language
用户可以自己定义语言标记,只要有开始和闭合标签即可。
xsl装饰、修饰xml的显示结果。
dtd约束xml文件中的标记。
XML的优点
1、xml可以让数据和标记分离。
2、异质信息互通
3、机器语言
4、用交流语言替代html装饰语言
5、简单易用
6、可以自定义、可扩展
XML和HTML比较
比较内容
HTML
XML
可扩展性
不具有扩展性、标记固定
是元标记语言,可以定义新标记,用户可以自定义标记
侧重点
侧重于信息的表现形式为什么格式被关注
侧重于结构化的描述信息,数据是什么为XML所关注
语法
不严格(嵌套、配对)
严格嵌套、配对,并按照DTD要求输出
可读性、可维护性
难于阅读和维护
结构清晰,便于阅读维护
数据本身、显示
数据和显示合为一处
数据与显示分离
重用性
低
可重用性高
JDOM操作XML
读取
* getChildren方法可以获取所有子元素
* getChildren(elName)可以获取所有名称为elName的子节点
* getAttributeValue可以获取指定属性的值
* getChildText可以获取子节点的文本值
XML文件:
<?xml version="1.0" encoding="UTF-8"?><datasources default="ds_sqlserver2k5"> <!-- sqlserver2000 --><datasource name="ds_sqlserver2k"><driver>net.sourceforge.jtds.jdbc.Driver</driver><url>jdbc:jtds:sqlserver://localhost:1433;DatabaseName=WabacusDemoDB</url><user>sa</user><password>111111</password><property name="max_size">20</property> <property name="min_size">5</property> <property name="timeout">100</property> <property name="max_statements">100</property> <property name="idle_test_period">50</property> <property name="acquire_increment">2</property> </datasource> <!-- sqlserver2005及以上 --><datasource name="ds_sqlserver2k5" ><driver>net.sourceforge.jtds.jdbc.Driver</driver><url>jdbc:jtds:sqlserver://127.0.0.1:1433;DatabaseName=brilliant_zz_3d</url><user>sa</user><password>sa</password><property name="max_size">20</property> <property name="min_size">5</property> <property name="timeout">100</property> <property name="max_statements">100</property> <property name="idle_test_period">50</property> <property name="acquire_increment">2</property> </datasource><!-- oracle --><datasource name="ds_oracle" ><driver>oracle.jdbc.driver.OracleDriver</driver><url>jdbc:oracle:thin:@localhost:1521:WabacusDemoDB</url><user>scott</user><password>tiger</password><property name="max_size">20</property> <property name="min_size">5</property> <property name="timeout">100</property> <property name="max_statements">100</property> <property name="idle_test_period">50</property> <property name="acquire_increment">2</property> </datasource><!-- mysql --><datasource name="ds_mysql" ><driver>com.mysql.jdbc.Driver</driver><url><![CDATA[jdbc:mysql://localhost/wabacusdemodb?useUnicode=true&characterEncoding=GBK]]></url><user>root</user><password>111111</password><property name="max_size">20</property> <property name="min_size">5</property> <property name="timeout">100</property> <property name="max_statements">100</property> <property name="idle_test_period">50</property> <property name="acquire_increment">2</property> </datasource></datasources>
JAVA代码:
package com.brilliant.xml;/** * 操作xml文件的类 * fph * 2013-08-28 */import java.io.File;import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.jdom2.Document;import org.jdom2.Element;import org.jdom2.JDOMException;import org.jdom2.input.SAXBuilder;import com.brilliant.tool.JsomDao;public class xMLOperation {private String defaultdb = ""; //默认的数据库连接private dbeneity db = new dbeneity();private List<dbeneity> dblist = new ArrayList<dbeneity>(); //jsonprivate String data = "";/** * 读取xml文件信息 * return jsonstring */public String readXMLContent(String defaultdbtype) {SAXBuilder builder = new SAXBuilder();try {Document doc = builder.build(new File("src/com/brilliant/xml/dbconfig.xml"));Element rootEl = doc.getRootElement(); defaultdb = defaultdbtype == null?rootEl.getAttributeValue("default"):defaultdbtype;System.out.println(defaultdb);// 获得所有子元素List<Element> list = rootEl.getChildren();for (Element el : list) {// 获取name属性值String name = el.getAttributeValue("name");//选取数据库的信息if(defaultdb.equals(name)){// 获取子元素driver、url、user、password文本值db.setDriver(el.getChildText("driver") == null?"0":el.getChildText("driver").toString());db.setUrl(el.getChildText("url") == null?"0":el.getChildText("url").toString());db.setUser(el.getChildText("user") == null?"0":el.getChildText("user").toString());db.setUser(el.getChildText("password") == null?"0":el.getChildText("password").toString());System.out.println(el.getChildText("driver"));System.out.println(el.getChildText("url"));System.out.println(el.getChildText("user"));System.out.println(el.getChildText("password"));dblist.add(db);// 转换为数据结果data = JsomDao.list2String(dblist);break;}else{continue;}}} catch (JDOMException e1) {e1.printStackTrace();} catch (IOException e) {e.printStackTrace();}return data;}public static void main(String[] args){xMLOperation hao23 = new xMLOperation();hao23.readXMLContent(null);}}
操作
- JDOM操作XML例
- JDOM操作XML文件
- JDOM操作XML文件
- JDOM操作XML文件
- JDOM操作XML文件
- JDOM操作XML文件
- 使用JDom操作XML
- jdom操作xml
- JDOM操作XML
- JDOM操作XML
- jdom操作xml
- jdom操作xml文件
- JDOM 操作XML
- jdom操作Xml示例
- Jdom 操作XML
- JDOM、Dom4j操作XML
- JDOM操作XML文档
- JDOM操作XML
- CRM上线之路 走上了CRM实施顾问-第25天上班 -第六周
- android BroadcastReceiver学习
- window server2003开机提示系统启动时至少有一个服务或驱动程序产生错误
- 强连通分支及kosaraju算法
- 对电子产品代工企业向研发转型的看法
- JDOM操作XML
- Linux on the i.MX6 sabre sd platform in a few commands
- hdu 4081 Qin Shi Huang's National Road System (最小生成树变形 两种解法 1.Prim 2.dfs)
- Matlab的text显示变量
- js table鼠标移动高亮显示
- uva 10340 All in All
- 非静态的字段,方法或属性。。。。。。要求对象引用
- Android修炼之路
- 使用JDK自带jvisualvm监控tomcat