*.如何通过DOM解析xml文档遍历其中的所有元素通过java解析
import javax.xml.parsers.DocumentBuilderFactory;
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();//通过工厂创建dbf实例
dbf.setIgnoringElementContentWhitespace(true);//忽视大小写
DocumentBuilder db=dbf.newDocumentBuilder();//通过dbf创建db
Document doc=db.parse(srcstu.xml);//通过parse解
Element e=doc.getDocumentElement();//然后通过doc.getElement来获取根节点等操作
NodeList list=e.getChildNodes();//获取子节点
for(int i=0;ilist.getLength();i++){
Node temp=list.item(i);//不可以用方括号获取
if(temp instanceof Element);//判断是否为元素节点
if(temp instanceof Text);//导包的时候导w3c.dom
system.out.print(temp.getNodeName);//可以获取节点名称
if(temp.hasChildNodes());//判断是否含有子节点
}
*.通过jdom解析xml
import org.jdom.Document;
import org.jdom.input.SAXBuilder;
SAXBuilder builder=new SAXBuilder();
Document dom=builder.build(new File("/1.xml"));
System.out.println(dom.getRootElement().getName());//获取根元素
Element root=dom.getRootElement();
root.getChildren();
*通过jdom新建一个xml
package com.star.jdbc;
import java.io.FileOutputStream;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.Namespace;
import org.jdom.Text;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
import junit.framework.TestCase;
public class TestXML extends TestCase {
public void testCreate(){
try{
Document doc = new Document();
Namespace ns = Namespace.getNamespace("http://www.bromon.org"); //namespace就是xml中的xmlns
Namespace ns2 = Namespace.getNamespace("other", "http://www.w3c.org");
Element root = new Element("根元素", ns);
root.addNamespaceDeclaration(ns2);
doc.setRootElement(root);
Element el1 = new Element("元素一");
el1.setAttribute("属性", "属性一"); //设置属性
Text text1 = new Text("元素值"); //设置内容
Element em = new Element("元素二").addContent("第二个元素");
el1.addContent(text1);
el1.addContent(em);
Element el2 = new Element("元素三").addContent("第三个元素");
root.addContent(el1);
root.addContent(el2);
XMLOutputter outputter = null;
Format format = Format.getCompactFormat();
format.setEncoding("GB2312"); //设置编码
format.setIndent(" ");//设置分割符,使xml文件看起来有层次
outputter = new XMLOutputter(format);
outputter.output(doc, new FileOutputStream("C:\\a.xml"));
}catch(Exception e){
e.printStackTrace();
}
}
}