最近看到了一个项目解析xml的方式,觉得也不错,测试下跟大家分享下!眼下解析xml的方式很多,这里不提了!只谈谈digester的使用,浅谈吧!希望以后你们遇到了能有点帮助吧!
首先在使用Digester解析xml时要导入2个jar包,有的人说是4个,我认为2个就够了,可能有其它的功能实现吧!不说了
2个jar包分别是commons-beanutils.jar 、commons-digester.jar,你们自己去下!
以下没有任何目的,纯属测试用:
1,首先建立一个web项目(我是为了方便直接建立了web项目)将三个jar包导入进来,再建立一个xml文件名字自己起,我这里叫database.xml
<?xml version="1.0" encoding="UTF-8"?>
<database>
<user userName="admin"
password="admin"
>
</user>
</database>
2,为之建立一个javabean,属性必须和xml中的user节点的属性一致(是不是必须没有做测试)
public class UserBean {
private ......
XML DOM介绍
一、XML DOM简介
DOM(Document Object Model,文档对象模型)是一种应用程序接口(API)的应用,它将文档(如XML文档,HTML文档等)看成是一个文档对象,然后通过程序语言(如JavaScript等脚本语言,C++等)调用该文档对象,对文档中的数据进行存取,并利用程序对获取的数据进行跟进一步的处理。
XML DOM是将XML文档以DOM方式包装,通过DOM技术,应用程序即可很容易地提取XML文档中的数据。
二、XML DOM对象
IE实现了对XML DOM技术的支持,提供了五个可以在脚本程序中调用的XML DOM对象:
(1) XMLDOMDocument
该对象代表整个XML文档,它具有多种属性和方法来获取或创建其他XML DOM对象。
(2) XMLDOMNode
该对象可以代表XML文档的根元素以及根元素下的各个节点。它支持数据类型、名域、DTD和Schema,并且以此扩展核心的XML DOM节点接口。
(3) XMLDOMNodeList
该对象代表XML文档� ......
XML 命名空间可提供避免元素命名冲突的方法。
命名冲突
由于 XML 中的元素名是预定义的,当两个不同的文档使用相同的元素名时,就会发生命名冲突。
这个 XML 文档携带着某个表格中的信息:
<table>
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>
这个 XML 文档携带有关桌子的信息(一件家具):
<table>
<name>African Coffee Table</name>
<width>80</width>
<length>120</length>
</table>
假如这两个 XML 文档被一起使用,由于两个文档都包含带有不同内容和定义的 <table> 元素,就会发生命名冲突。
使用前缀来避免命名冲突
此文档带有某个表格中的信息:
<h:table>
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
此 XML 文档携带着有关一件家具的信息:
<f:table>
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length& ......
常用的系列化定义(using System.Xml.Serialization;)
[XmlAttribute("name")] // 定义<Tag name="…"></Tag>
[XmlElement("label")] // 定义<label>…</label>
[XmlIgnoreAttribute()] // 跳过系列化
[XmlElement("description", IsNullable = false)] // 定义<description>…</description>,在属性值为null时不显示该元素,即可选
[XmlArray("temp_var_list", IsNullable=false)] // 定义<temp_var_list><Tag>…</Tag>…<Tag>…</Tag></temp_var_list>,即数组对象的根结点
[XmlArrayItem("temp_var_item")] // 定义<temp_var_item>…</temp_var_item>…<temp_var_item>…</temp_var_item>,即数据元� ......
常用的系列化定义(using System.Xml.Serialization;)
[XmlAttribute("name")] // 定义<Tag name="…"></Tag>
[XmlElement("label")] // 定义<label>…</label>
[XmlIgnoreAttribute()] // 跳过系列化
[XmlElement("description", IsNullable = false)] // 定义<description>…</description>,在属性值为null时不显示该元素,即可选
[XmlArray("temp_var_list", IsNullable=false)] // 定义<temp_var_list><Tag>…</Tag>…<Tag>…</Tag></temp_var_list>,即数组对象的根结点
[XmlArrayItem("temp_var_item")] // 定义<temp_var_item>…</temp_var_item>…<temp_var_item>…</temp_var_item>,即数据元� ......
在MFC程序中使用XML文件配置工具栏
作者:朱金灿
来源:http://www.cnblogs.com/clever101
现在我发现使用Visual Studio的资源编辑器进行编辑资源有着诸多的不便:首先是任何资源的变动一般变动代码,不利于系统维护,其次Visual Studio的资源编辑器的本身的功能有限,也不利于界面美化,三是不利于人员分工,开发人员既要忙实现功能,又要忙准备好的界面素材。对界面实现文件配置化正是解决上面问题的好方法。这次我实现了使用XML文件配置工具栏。这里所谓配置就是工具栏的界面信息如工具栏标题、按钮图片、是否为分隔符都在XML文件保存,程序通过解析XML文件来获取工具栏信息来创建工具栏。这样一旦发现界面不合适可以随时修改配置文件,同时利于人员分工。
具体的做法如下:
1. 在工程的输出目录下有一个SysConfig.xml,作为系统配置文件。其中关于工具栏的配置部分如下:
<AppToolbar valid="1" caption="基础工具">
<ToolButton file="Add.bmp" />
&nbs ......
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.xpath.XPath;
public class XMLReader {
private static final String CONFIG_FILE_NAME = "testSuits.xml";
private Element rootElt;
public XMLReader() {
SAXBuilder sb = new SAXBuilder();
try {
//Document doc = sb.build(Thread.currentThread().getContextClassLoader().getResourceAsStream(CONFIG_FILE_NAME));
Document doc = sb.build(new FileInputStream("F:/report/testSuits.xml"));
//取得<sys-configure>
rootElt = doc.getRootElement(); //相当拿到了整个文件一样,都在rootElt中
} catch (Exception e) {
e.printStackTrace();
}
}
& ......