在java   jdk中解析XMl文件使用 org.w3c.dom.Document工具

一下是写入全程:

import java.io.File;
import java.io.IOException;
import java.io.StringWriter; import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.SAXException; public class CreatXML { /**
* 创建一个XML文件
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub try { DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();//可获取XML解析器
DocumentBuilder builder = factory.newDocumentBuilder();//获取文档生成器
Document document=builder.newDocument();//获取文档实例
Element root=document.createElement("languages");//创建一个根元素
root.setAttribute("cat", "it");//给根元素添加一个cat="it" 的属性 Element lan1=document.createElement("lan");//创建一个元素标签名为<lan>
lan1.setAttribute("id", "1");//添加属性
Element name1=document.createElement("name");//创建一个name标签
name1.setTextContent("java");//为name标签设置内容
Element ide1=document.createElement("ide");//创建一个ide标签
ide1.setTextContent("Eclipse");//为表填添加内容 lan1.appendChild(name1);
lan1.appendChild(ide1);//让name1和 ide1标签成为lan1标签的子节点
root.appendChild(lan1);//将lan1添加到root 的子节点 document.appendChild(root);//将root添加到文档 //将document转化成流数据 以便储存在文件 或者传输 TransformerFactory transformerFactory= TransformerFactory.newInstance();
Transformer transformer=transformerFactory.newTransformer();
StringWriter writer=new StringWriter();
transformer.transform(new DOMSource(document), new StreamResult(writer));//将document转换成输出流
System.out.println(writer.toString()); transformer.transform(new DOMSource(document), new StreamResult(new File("newXML.xml")));//将document保存到文件 } catch (Exception e) {
e.printStackTrace();
} } }

  

以下是解析全程:

import java.io.File;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
/**
* 解析xml文件
*
*
*/ public class ShowXML { public static void main(String[] args) throws Exception { DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();//可获取XML解析器
DocumentBuilder builder=factory.newDocumentBuilder();//获取文档生成器
Document document=builder.parse(new File("workspace.xml"));//获取文档
Element root=document.getDocumentElement();//获取文档元素(这里是主元素)
System.out.println("version="+root.getAttribute("version"));//输出查看元素属性
NodeList list=root.getElementsByTagName("component");//获取所有component标签节点
for (int i = 0; i < list.getLength(); i++) {//遍历节点
Element component=(Element) list.item(i);//获取节点
System.out.println("----------------------------------");
System.out.println("component"+i+".name="+component.getAttribute("name"));//输出节点元素属性
//System.out.println(component.getTextContent());//获取节点内的文本
NodeList list1=component.getChildNodes();//获取component元素的所有子元素
for (int j = 0; j < list1.getLength(); j++) {//遍历子元素
System.out.println("-----------------------------------------");
Node componentchild=list1.item(j);//获取子元素节点 System.out.println(componentchild.getNodeName());//输出子元素标签名
//System.out.println(componentchild.getTextContent());//输出子元素的文本内容
//输出中有些无用的节点#text 代表换行空白的节点
//去除#text的方法 判断这个节点是不是一个元素再输出
/*if(componentchild instanceof Element){
System.out.println(componentchild.getNodeName());//输出子元素标签名 }*/ } } }
}

  

还有一种引用Dom4j.jar 工具包

写入Xml

package Dom4j_XMl;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream; import org.dom4j.Document;
import org.dom4j.DocumentHelper; public class Dom4j { /**
* Dom4j使用 快捷的进行XML读写
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
String xmlval="<peopre><name>老表</name><age>26</age></peopre>";
Document document=DocumentHelper.parseText(xmlval); System.out.println(document.asXML());//直接可以输出XML格式的数据 File file=new File("mynews.xml");
if(!file.isAbsolute()){ file.createNewFile();
}
byte[] xmlbyte=xmlval.getBytes("utf-8"); FileOutputStream out=new FileOutputStream(file);
BufferedOutputStream bout=new BufferedOutputStream(out);
bout.write(xmlbyte);
bout.flush();
out.close();
bout.close(); } }

  

最新文章

  1. H5页面微信分享和手Q分享设置
  2. ZOJ Problem Set - 1334 Basically Speaking ac代码及总结
  3. Android驱动开发之Hello实例
  4. Python操作excel,及图表展示
  5. 由SecureCRT引发的思考和学习
  6. 在ubuntu下配置apache运行python脚本
  7. SQL远程创建数据库
  8. MyEclipse 中文乱码 史诗级解决方法。也可用于其他编码
  9. 【风马一族_Java】 Java的文件类 java.io
  10. Hibernate的几种主键生成策略
  11. 【Machine Learning in Action --5】逻辑回归(LogisticRegression)从疝气病预测病马的死亡率
  12. Rails核心组件
  13. php语法标记风格
  14. 48、mysql补充
  15. linux软连接文件的copy
  16. asp.net core系列 33 EF查询数据 (2)
  17. 微信H5页面嵌入百度地图---解决手机的webKit定位,ios系统对非https网站不提供支持问题
  18. js鼠标相关事件
  19. workerman 7272端口被占用
  20. iOS常用代码总结

热门文章

  1. Ajax轮询请求
  2. 2019-11-29-git-需要知道的1000个问题
  3. Linux下关闭Tomcat
  4. laraveladmin省市区三级联动
  5. VS编译器问题总结
  6. 用C#实现DES加密解密封装
  7. JVM内存溢出处理方法
  8. 2019长安大学ACM校赛网络同步赛 L XOR (规律,数位DP)
  9. 解决Kloxo出现Could not open database connection问题
  10. 查个远程桌面是否开启 debug版360报毒 release 不报毒