java读写xml

阅读更多
这里总结一下XML文件的读写过程,先说一下写的过程,这里我用的是XmlDocument的write方法实现的,写的过程是比较简单的,只需要定义自己想要的元素变量,
Element user=null;
Element username=null,password=null;
然后
// 定义工厂,使应用程序能够从 XML 文档获取生成 DOM 对象树的解析器。
DocumentBuilderFactory dbf=null;
//定义 API, 使其从 XML 文档获取 DOM 文档实例。使用此类,应用程序员可以从 XML 获取一个 Document
DocumentBuilder db=null;
//实例工厂
dbf = DocumentBuilderFactory.newInstance();
//实例documentBuilder对象
db = dbf.newDocumentBuilder();
//实例XmlDocument变量
doc = new XmlDocument();
手动或从数据库里查数据为其赋值,
username="helloxml";
password="pass";
实例元素变量
user = doc.createElement("UserInfomation");
//实例element变量
username = doc.createElement("UserName");
username.appendChild(doc.createTextNode(username1));
user.appendChild(username);
。。。。。
//再用XmlDocument对象doc将根元素到xml文档
doc.appendChild(user);
最后通过write方法将其写到指定的文件中
if (path == null || path.equals("")) {
path = "E:/user.xml";
}
try
{
//将输出路径通过OutputStreamWriter
OutputStreamWriter out = new OutputStreamWriter(
new BufferedOutputStream(new FileOutputStream(path)), "UTF-8");
//利用XmlDocument的write方法写出xml文件
doc.write(out, "UTF-8");
out.close();

}catch(Exception e)
{
e.printStackTrace();
}
就完成了。 这里用到的XmlDocument类需要crimson.jar这个包 下载加入项目的lib中去。

接下说一下解析xml,这里我觉得他比较烦人,深度不同,获取的层次就不同,还要考虑到获取的效率,这里我就用最常用的了
我用的dom4j来解析的。
首先下载dom4j.jar包放入项目的lib中,
//定义SAXReader对象 reader
SAXReader reader = new SAXReader();
//通过reader来解析指定路径下的xml文件
Document doc = reader.read(new File(fileName));
//通过doc获取xml文件中的元素赋值Element对象
Element rootElement = doc.getRootElement();
for (Iterator i = rootElement.elementIterator(); i.hasNext();)
{
Element element = (Element) i.next();
System.out.println(element.getText());//显示首级信息
System.out.println(element.getName());//显示首级元素名称
if(element.getName().equals("UserName"))
{
UserName=element.getText();
}//end block if
if(element.getName().equals("PassWord"))
{
PassWord=element.getText();
}
如果深度多1那么就只好在嵌套一个for循环

}
这样就完成了xml解析
版权声明:本文为博主原创文章,未经博主允许不得转载。

 

你可能感兴趣的:(java读写xml)