一个用Dom4j解析xml的例子
一、测试用的em.xml
<?xml version="1.0" encoding="GB2312"?>
<EW cmd="login" mod="Login" version="6.0">
<Source uns="" type="user"/>
<Username>zhangzhiyun@hp</Username>
<Password>111111</Password>
<Version>6.01.06.00</Version>
</EW>
二、Dom4jTest.java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import org.apache.log4j.Logger;
import org.dom4j.Attribute;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
/**
* @author julysea
*
* 一个用Dom4j解析xml的例子
*
*/
public class Dom4jTest {
private static final Logger logger = Logger.getLogger(Dom4jTest.class);
public static void main(String[] args) throws IOException,
DocumentException {
BufferedReader reader=new BufferedReader(new FileReader("ew.xml"));
String tempStr;
String ewXml="";
while((tempStr=reader.readLine())!=null) {
ewXml=ewXml+tempStr;
logger.debug(tempStr);
}
Element root = null;
root = DocumentHelper.parseText(ewXml).getRootElement();
Attribute rootCmd=root.attribute("cmd");
Attribute rootVersion=root.attribute("version");
logger.debug("rootNmae = "+root.getName());
logger.debug("EW'cmd = "+rootCmd.getValue());
logger.debug("EW'version = "+rootVersion.getValue());
Element usrName=root.element("Username");
logger.debug("EW.Username value = "+usrName.getTextTrim());
Element source=root.element("Source");
Attribute sourceUns=source.attribute("uns");
logger.debug("EW.Source'uns="+sourceUns.getValue());
Attribute sourceType=source.attribute("type");
相关文档:
public partial class Form1 : Form
{
DataSet ds = new DataSet();
public Form1()
{
......
/*--存为XML
将表/查询存储为标准的XML文件
--*/
/*--调用示例
--用SQL用winows身份验证的情况
exec p_savexml @sql='地区资料',@fname='c:\地区资料.xml'
--用指定的用户
exec p_savexml @sql='地区资料',@fname='c:\地区资料.xml',@userid='sa'
--*/
if exists (select * from db ......
XMLDocument类提供了丰富的属性和方法,可以帮助我们轻松完成xml的编辑。但是,完成后的xml很多情况下可能还是需要以字符串形式传递。XMLDocument有个Save方法,不仅可以保存XML文件至磁盘,还能将其保存至指定的流,然后,就能从这个流(stream)读取所需要的字符串了。
XmlDocument doc = new XmlDocument();
...
.../ ......
对于带有表空间xmlns的xml文件的解析,用正常解析文件的方法总是失效,不起作用,无法获得元素。
下面给出两种方法解析此类文件:
1.按正常解析xml文件的方法,需要注意几点:
获取元素Element,不可使用函数:document.selectNodes("//region");
只可以先取到根元素,一级一级往下取,eg:
Element root = document.g ......