使用 JDOM 读取和写入 XML 文件

jdom的使用(读取和写入) jdom的使用: xml文件的读取 xml文件的写入 立即下载


xml文件

<?xml version="1.0" encoding="UTF-8"?>
<sys-configure>
 <jdbc-info>
  <dirver-class-name>com.mysql.jdbc.Driver</dirver-class-name>
  <url>jdbc:mysql://127.0.0.1:3306/mysql1</url>
  <user-name>root</user-name>
  <password>pengbo</password>
 </jdbc-info>
 
 <beans>
  <bean id="com.gzbb.item.dao.ItemDao" class="com.gzbb.item.dao.ItemDaoImpl"/>
 </beans>
</sys-configure>

-----------------------------------------------------

java文件

package com.gzbb.item.util;

import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.xpath.XPath;

import com.gzbb.item.dao.ItemDao;

public class GobalConfigure {
 private static GobalConfigure instance = new GobalConfigure();

 private final static String CONFIG_FILE_NAME="gobal_configure.xml";
 
 private Element rootElement;
 
 private JdbcInfo jdbcInfo = new JdbcInfo();
 
 private Map beanMap = new HashMap();

 private GobalConfigure() {
  
  SAXBuilder saxBuilder = new SAXBuilder();
  try {
   Document document = saxBuilder.build(Thread.currentThread().getContextClassLoader().getResourceAsStream(CONFIG_FILE_NAME));
   rootElement = document.getRootElement();
   initJdbcInfo();
   initBeans();
  } catch (JDOMException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

 public static void main(String[] args)
 {
  getInsatance();
//  getInsatance().getBean("com.gzbb.item.dao.ItemDao");
  getInsatance().getBean(ItemDao.class);
 }
 
 public JdbcInfo getJdbcInfo() {
  return jdbcInfo;
 }
 
 public static GobalConfigure getInsatance() {
  return instance;
 }
 
 public void initBeans()
 {
  try {
   List elList = (List)XPath.selectNodes(rootElement, "//sys-configure/beans/bean");
   for(Iterator it = elList.iterator();it.hasNext();)
   {
    Element el = (Element)it.next();
    String id = el.getAttributeValue("id");
    String name = el.getAttributeValue("class");
    
    //实例化Dao
    //实例化的类需要有公共构造函数
    //Object obj = Class.forName(name).getMethods();
    Object obj = Class.forName(name).newInstance();
    beanMap.put(id, obj);
   }
  } catch (JDOMException e) {
   e.printStackTrace();
  } catch (InstantiationException e) {
   e.printStackTrace();
  } catch (IllegalAccessException e) {
   e.printStackTrace();
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  }
 }
 
 private Object getBean(Class c)
 {
  return beanMap.get(c.getName());
 }
 
 private void initJdbcInfo()
 {
  try {
   Element driverClassNameElt = (Element)XPath.selectSingleNode(rootElement, "//sys-configure/jdbc-info/dirver-class-name");
   Element urlElt = (Element)XPath.selectSingleNode(rootElement, "//sys-configure/jdbc-info/url");
   Element userNameElt = (Element)XPath.selectSingleNode(rootElement, "//sys-configure/jdbc-info/user-name");
   Element passwordElt = (Element)XPath.selectSingleNode(rootElement, "//sys-configure/jdbc-info/password");
   getJdbcInfo().setDriverName(driverClassNameElt.getText());
   getJdbcInfo().setUrl(urlElt.getText());
   getJdbcInfo().setUserName(userNameElt.getText());
   getJdbcInfo().setPassword(passwordElt.getText());
   System.out.println(getJdbcInfo().toString());
  } catch (JDOMException e) {
   e.printStackTrace();
  }
 }
}

-----------------------------------------------------------------


写XML文件


package com.gzbb.item.util;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;

public class XMLWriter {
 public static void main(String[] agrs)
 {
  Element rootElt = new Element("selects");
  
  Element elt1 = new Element("select");
  
  Element elt2 = new Element("id");
  elt2.addContent("1");
  
  Element elt2_1 = new Element("name");
  elt2_1.addContent("黑龙江");
  
  elt1.addContent(elt2);
  elt1.addContent(elt2_1);
  rootElt.addContent(elt1);
  
  Document dc = new Document(rootElt);
  XMLOutputter xmlOutputter = new XMLOutputter();
  xmlOutputter.setFormat(Format.getCompactFormat().setEncoding("gbk"));
  System.out.println(xmlOutputter.outputString(dc));
  
  try {
   xmlOutputter.output(dc, new FileOutputStream("c:/text.xml"));
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
}


 

Jdom解析嵌套XML<一> NULL 博文链接:https://javawill.iteye.com/blog/1537335 立即下载

相关推荐

基于IP2369与STM32的45W双向PD移动电源设计

USB PD(Power Delivery)是一种面向高功率、智能协商的通用快充协议,其核心在于通过BMC编码在CC线上完成供电能力(PDO)动态匹配与电压/电流精准调控。IP2369作为高度集成的PD协议管理芯片,内置PHY、协议引擎与MOSFET驱动,可卸载MCU实时通信压力;而STM32F103系列凭借低功耗STOP模式与丰富外设,成为电源状态管理与用户交互的理想协处理器。该组合显著提升系统鲁棒性与能效比,适用于便携式移动电源、嵌入式备用电源及PD协议教学验证等场景。本文围绕IP2369配置电阻精度、

weixin_42608299的博客 515

java jdom 更新xml_JDOM用简单的Java程序来修改XML文件的方法

importjava.io.File;importjava.io.FileWriter;importorg.jdom.Document;importorg.jdom.Element;importorg.jdom.input.SAXBuilder;importorg.jdom.output.XMLOutputter;/***@authorgiftsam*/publicclassX...

weixin_35749545的博客 184

CP2102 USB 转 UART 模块 PCB 设计项目

不幸的是,我的笔记本电脑只有 USB 端口,所以我需要在 USB 端口和 UART 接口之间进行转换。PCB 布局将足够小,因此我们不一定需要高速布线 USB 线路,但我们将在此将其作为一个简单的示例来实现,以展示如何在这种类型的电路板上实现它。相反,我们只使用屏幕左侧的电路。在这里,我们利用对之间的间距和到 L1 上的铜灌注的距离将差分阻抗设置为目标值。初始布局分为两个部分:USB 连接器和 USB 线路的 TVS 二极管放置在电路板左侧,带有二极管 D4 和 D5 的引脚接头放置在电路板右侧。

jkh920184196的博客 2400

jdom操作xml,解析和写入

1、解析xml   import java.util.Iterator; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import org.jdom.Document; import org.jdom.Element; import org.jdom....

Devil不加V 265

使用sklearn学习多项式回归(三)

1,什么是线性 我们无数次提到”线性“这个名词。在支持向量机中,我们也曾经提到最初的支持向量机只能够分割线性可分的数据,然后引入了”核函数“来帮助我们分类那些非线性可分的数据。我们也曾经说起过,比如说决策树,支持向量机是”非线性“模型。所有的这些概念,让我们对”线性“这个词非常熟悉,却又非常陌生——因为我们并不知道它的真实含义。接下来我们看看线性回归模型改进的核心之一:帮助线性回归解决非线性问题。 1.1,变量之间的线性关系 ”线性“这个词用于描述不同事物时有着不同的含义。我们最常使用的线性是指“变量

理科男同学 5100

手把手教你用CEFSharp打造防关联指纹浏览器(附完整代码)

本文详细介绍了如何基于CEFSharp框架,从零开始构建一个企业级的防关联指纹浏览器。通过剖析核心架构、多进程隔离实现、动态指纹混淆(如Canvas、WebGL)的实战代码,以及代理集成与性能优化,为跨境电商、广告投放等场景提供了一套可控、安全的开源解决方案。

fern8的博客 959

java jdom_java使用Jdom实现xml文件写入操作实例

本文实例讲述了java使用Jdom实现xml文件写入操作的方法。分享给大家供大家参考,具体如下:package com.yanek.demo.xml.test;import java.io.File;import java.io.FileWriter;import org.jdom.Attribute;import org.jdom.Document;import org.jdom.Element...

weixin_39733146的博客 173

《uni-app 长列表优化:虚拟列表(vue-virtual-scroller)解决 1000+ 数据渲染卡顿》(附虚拟列表封装与多端适配)

本文详细介绍了虚拟列表技术在前端长列表渲染中的优化方案。针对传统v-for渲染导致的性能问题(内存占用高、渲染阻塞、滚动卡顿),提出基于vue-virtual-scroller的虚拟列表解决方案,通过可视区域渲染和DOM复用实现性能突破。文章包含核心原理、组件封装、多端适配及性能对比,并给出常见问题的解决方法。实践表明,该方案可将1000条数据的首次渲染时间从3800ms降至420ms,滚动FPS提升至55帧,显著改善用户体验。

qq_59041750的博客 2107

JDOM写入XML文件

[code="java"] package com.gyj.jdom; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import java...

iteye_1043的博客 192

[特殊字符] 智能补货(AI-driven Replenishment)完整实施方案

补货量=预测需求+安全库存−当前库存补货量 = 预测需求 + 安全库存 - 当前库存补货量=预测需求+安全库存−当前库存。:基于 LSTM/Transformer 预测未来 30/60/90 天的销量。

nbsaas-boot基于Request-Response的企业级快速开发框架 967

RK3588上使用PCIE接口的国产千兆网卡YT6801

YT6801是裕太微电子开发的一款国产千兆PCIE以太网控制器芯片,可作为RK3588的PCIE外扩网口使用。

荻夜的博客 8202

java jdom xmlparse_Java:XML篇,使用JDOM读取并解析XML

packagecom.clzhang.sample.xml;import java.io.*;import java.util.*;importorg.jdom2.Document;importorg.jdom2.Element;importorg.jdom2.input.SAXBuilder;importorg.jdom2.output.Format;importorg.jdom2.output...

weixin_31140863的博客 156

rk628d修改默认分辨率

在rk3568上使用628d hdmi转mipi,在628d已经调试好的情况下,客户新增需求:视频输入这边的推荐分辨率固定在1024x768。

m0_60805802的博客 2052

jdom解析xml, API使用、详解、实例说明

jdom

牧羊仒 1954

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

java读取mysql 写入xml文件_使用JDOM将数据库中的表数据读出转成XML及将XML内容写入数据库...

2006年7月7日最近的工作常常要和XML格式的文档或字符串打交道,发现用JDOM来做真是方便。可以实现XML应用程序的快速开发。在 JDOM 中,XML 元素就是 Element 的实例,XML 属性就是 Attribute 的实例,XML 文档本身就是 Document 的实例。因为 JDOM 对象就是像 Document、Element 和 Attribute 这些类的直接实例,因此创...

weixin_36090062的博客 369

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

web开发总结----xml的写入、读取---1

两种解析方式:  DOM(Document Object Model 文档对象模型)  关键字:树(Document)  优点: 把 xml 文件在内存中构造树形结构,可以遍历和修改节点  缺点: 如果文件比较大,内存有压力,解析的时间会比较长  SAX(Simple API for Xml 基于 XML 的简单 API)  关键字:流(Stream)  把 xml 文件作为输入...

iteye_8039的博客 242

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

java xml文件下载,java读取和写入xml文件

【实例简介】该资源包含了java四种方式读取和写入xml文件的代码【实例截图】【核心代码】domtest└── domtest├── bin│ └── com│ ├── domread│ │ └── test│ │ ├── Dom4JTest.class│ │ ├── DomTest.class│ │ ...

weixin_42116596的博客 420

JAVA JDom解析XML

import java.io.File; import java.io.FileOutputStream; import java.util.List; import org.jdom.*; import org.jdom.input.*; import org.jdom.output.*; public class JDOMTest { public void read

ysp198910的专栏 394

java 导出本地xml文件_java导出xml文件

JDOM 文档声明其目的是“使用 20%(或更少)的精力解决 80%(或更多)Java/XML 问题”(根据学习曲线假定为 20%)。JDOM 对于大多数 Java/XML 应用程序来说当然是......广联达计价软件xml文件导出步骤(招标人适用)(2013.2.25)_电脑基础知识_IT/计算机_专业资料。广联达计价软件 xml 文件导出步骤(招标人适用) 注:本教程仅适用于......需要使...

weixin_31231693的博客 1248

java xml解析器_Java XML解析器

java xml解析器Java XML parser is used to work with xml data. XML is widely used technology to transport or store data. That’s why there are many java xml parsers available. Java XML解析器用于处理xml数据。 XML是广泛用于...

从零开始的教程世界 1110

利用JDOM把JPG图象数据写入XML一个简单例子

转载自:http://www.cjsdn.net/post/view?bid=5&id=45013&sty=1&tpg=11&age=0 代码在JBUILDER上测试过 第一步 首先读取图象文件  public static byte[] getBytesFromFile(File file) throws IOException { InputStream is = ne

客亦知夫水与月乎? 728

XML解析(DOM SAX JDOM DOM4J)

XML:可扩展标记语言,用于存储、传输数据(HTML用于显示数据) 4种解析: 1.DOM: 用于平台语言无关的方式表达XML文档的官方W3C标准。 基于树。 2.SAX 类似于流媒体的优点,分析能够立即开始,而不是等待所有的数据被处理。。用于应用程序只能在读取数据时检查数据,因此不需要将数据存储在内存中,适用于大文档的的解析。 基于事件。 3.JDOM 第一个JAVA特定文档模

Songongngg的博客 332

java jdom 读取xml文件_使用jdom读写xml文档的实例

事先需要从这里下载:http://www.jdom.org/dist/binary/jdom api,导入build目录的 jdom.jarJdomRWXML.java 源码:import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.util.List...

weixin_32558831的博客 202

java jdomxml 换行_使用JDOM读写XML的方法

1. 读读XML有多种方法.最基本的方法如下:<1>用SAXBuilder类构造一个实例,并创建一个文件:// Build the document with SAX and Xerces, no validationSAXBuilder builder = new SAXBuilder();// Create the documentDocument doc = builder.bu...

weixin_33046149的博客 244

java jdom 包_java 中jdom包的简单使用

public class Test {public static void main(String[] args) throws FileNotFoundException,JDOMException, IOException {//读C盘里面的foo.xml文件的内容readXMLFile();//写入到C盘里面的foo2.xml文件里去writeXMLFile();}private stati...

weixin_31164189的博客 251
上一篇: 行动的力量
下一篇: spring 属性注入
欧德曼
博客等级 码龄19年 63粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值