java中的xml操作
来源:互联网 发布:ubuntu安装python2.7 编辑:程序博客网 时间:2024/05/16 05:00
(1)使用java读取XML文件: DOM解析XML
XML样例如下:(language.xml)
<?xmlversion="1.0"encoding="UTF-8"?>
<Languagescat="it">
<lanid="1">
<name>java</name>
<ide>eclipse</ide>
</lan>
<lanid="2">
<name>swift</name>
<ide>Xcode</ide>
</lan>
<lanid="3">
<name>C#</name>
<ide>Visual Studio</ide>
</lan>
</Languages>
解析方式如下:
//DOM解析XML(用try catch)
DocumentBuilderFactoryfactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder =factory.newDocumentBuilder();
Document doc =builder.parse("language.xml");
Elementroot = (Element)doc.getDocumentElement();
System.out.println("cat = "+root.getAttribute("cat"));
NodeList list =root.getElementsByTagName("lan");
for (inti =0;i<list.getLength();i++)
{
Elementlan = (Element)list.item(i);
System.out.println("-----------------");
System.out.println("id="+lan.getAttribute("id"));·
// Element name = (Element)lan.getElementsByTagName("name").item(0);
// System.out.println(name.getTextContent());
// Element ide = (Element)lan.getElementsByTagName("ide").item(0);
// System.out.println(ide.getTextContent());
NodeList cList =lan.getChildNodes();
for(intj = 0;j<=cList.getLength();j++){
Node e =cList.item(j);
if(einstanceof Element) {
System.out.println(e.getNodeName()+"="+e.getTextContent());
}
}
}
运行结果:
cat = it
-----------------
id=1
name=java
ide=eclipse
-----------------
id=2
name=swift
ide=Xcode
-----------------
id=3
name=C#
ide=Visual Studio
(2)使用java创建XML数据:
public static void main(String[] args) {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder =factory.newDocumentBuilder();
Document document =builder.newDocument();
Element root = document.createElement("language");
root.setAttribute("cat","it");
Element lan1 = document.createElement("lan");
lan1.setAttribute("id","1");
Element name1 = document.createElement("name");
name1.setTextContent("java");
Element ide1 = document.createElement("ide");
ide1.setTextContent("eclipse");
Element lan2 = document.createElement("lan");
lan2.setAttribute("id","2");
Element name2 = document.createElement("name");
name2.setTextContent("swift");
Element ide2 = document.createElement("ide");
ide2.setTextContent("Xcode");
Element lan3 = document.createElement("lan");
lan3.setAttribute("id","3");
Element name3 = document.createElement("name");
name3.setTextContent("C#");
Element ide3 = document.createElement("ide");
ide3.setTextContent("visualStudio");
lan1.appendChild(name1);
lan1.appendChild(ide1);
root.appendChild(lan1);
lan2.appendChild(name2);
lan2.appendChild(ide2);
root.appendChild(lan2);
lan3.appendChild(name3);
lan3.appendChild(ide3);
root.appendChild(lan3);
document.appendChild(root) ;
//---------将当前文档转化成字符串显示----------------------
try {
TransformerFactory transformerFactory =TransformerFactory.newInstance();
Transformer transformer =transformerFactory.newTransformer();
StringWriter writer =new StringWriter();
//转化输入输出流
transformer.transform(new DOMSource(document),new StreamResult(writer));
System.out.println(writer.toString());
//文件
transformer.transform(new DOMSource(document),new StreamResult(new File("111.xml")));
} catch (TransformerConfigurationExceptione) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerExceptione) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (ParserConfigurationExceptione) {
e.printStackTrace();
}
}
运行后,刷新项目(F5)就会发现项目中创建了111.xml文件,在控制台也有输出。创建好的文件没有格式,全选内容,用ctrl+I快捷键格式化数据,就可以看到有层次感的xml文件。
如下所示:
<?xmlversion="1.0"encoding="UTF-8"standalone="no"?>
<languagecat="it">
<lanid="1">
<name>java</name>
<ide>eclipse</ide>
</lan>
<lanid="2">
<name>swift</name>
<ide>Xcode</ide>
</lan>
<lanid="3">
<name>C#</name>
<ide>visualStudio</ide>
</lan>
</language>
(3)使用DOM4J操作xml数据:
工具下载网址:www.dom4j.org/dom4j-1.6.1/
在项目中新建一个lib文件夹。将dom4j下载并解压,解压后的dom4j-1.6.jar拷贝在工程目录Lib文件夹下。在main()中:
String xmlString = “ <lan><name>java</name><ide>eclipse</ide></lan>”
Document doc=DocumentHelper.pareseText(xmlString);
System.out.println(document.asXML));
若需要了解其他的用法,打开解压后的/doc/index就可以查看完整的操作说明。
- java中的XML操作
- java中的xml操作
- [j2ee]java中的xml操作
- java中的四种XML读取操作
- java操作XML中的占位符
- 【Java解析XML】【二】JDK中的XML解析操作
- java中的一些对XML的操作与方法
- xml-03-Java操作XML
- java中操作XML
- JAVA操作XML大全
- java 操作XML
- java操作xml小结
- java+dom4j操作XML
- Java操作XML
- java操作xml文件
- JAVA 操作xml
- Java操作XML对象
- 使用Java操作XML
- c++的问题
- 进程间通信-创建管道实现机制
- WebService的知识总结(一)
- php后端强制前端下载文件
- adb shell 工具
- java中的xml操作
- java中的堆、栈、常量池
- 遍历删除List中的元素,会报错? 用iterator.remove() 完美解决
- Art and Artificial Intelligence
- C语言——实例040 数组逆序输出
- XYNUOJ 1247 FatMouse's Trade—贪心算法
- ViewPager滑动动画效果实现
- 几种常见消息加密方式
- 阿里云maven仓库