java 解析生成xml

来源:互联网 发布:血源诅咒男性捏脸数据 编辑:程序博客网 时间:2024/06/02 00:07

解析xml

<span style="white-space:pre"></span>//创建一个DocumentBuilderFactory对象DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();//创建documentBuilder对象DocumentBuilder db=dbf.newDocumentBuilder();//通过documentBuilder对象的parse方法加载xml到当前项目下Document document=db.parse("books.xml");//通过标签名获取所有book节点的集合NodeList bookList=document.getElementsByTagName("book");//通过item获取NodeList中的某一个节点org.w3c.dom.Node book=bookList.item(i);//通过一个节点的getAttributes()方法获取book节点的所有属性集合NamedNodeMap attrs=book.getAttributes();//获取某一属性的属性名\值\类型String attr.getNodeName();attr.getNodeValue();attr.getNodeType();//获取标签中的内容注:element.getNodeValue()的值都为空node.getFirstChild().getNodeValue();node.getTextContent();
生成xml

package test;import java.io.File;import java.io.IOException;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import javax.xml.soap.Node;import javax.xml.transform.OutputKeys;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerConfigurationException;import javax.xml.transform.TransformerException;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;import org.w3c.dom.Attr;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.NamedNodeMap;import org.w3c.dom.NodeList;import org.xml.sax.SAXException;public class DomTest {public DocumentBuilder getDocumentBuilder(){//创建一个DocumentBuilderFactory对象DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();//创建documentBuilder对象DocumentBuilder db=null;try {db = dbf.newDocumentBuilder();} catch (ParserConfigurationException e) {// TODO Auto-generated catch blocke.printStackTrace();}return db;}public void xmlParse() {try {//通过documentBuilder对象的parse方法加载xml到当前项目下Document document=getDocumentBuilder().parse("books.xml");//获取所有book节点的集合NodeList bookList=document.getElementsByTagName("book");//遍历每一个book节点//System.out.println(bookList.getLength());for(int i=0;i<bookList.getLength();i++){//通过item获取某一个节点org.w3c.dom.Node book=bookList.item(i);//获取book节点的所有属性集合NamedNodeMap attrs=book.getAttributes();//System.out.println(attrs.getLength());for(int j=0;j<attrs.getLength();j++){//通过item获取某一个属性org.w3c.dom.Node attr=attrs.item(j);//获取属性名System.out.println("属性名"+attr.getNodeName());System.out.println("属性值"+attr.getNodeValue());}NodeList childNodes=book.getChildNodes();System.out.println("第"+(i+1)+"本书共有"+childNodes.getLength()+"个子节点");for(int k=0;k<childNodes.getLength();k++){//获取eleif(childNodes.item(k).getNodeType()==org.w3c.dom.Node.ELEMENT_NODE){System.out.print(childNodes.item(k).getNodeName()+" ");System.out.println(childNodes.item(k).getFirstChild().getNodeValue());}}System.out.println();}}catch (SAXException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public void creatXml() {DocumentBuilder db=getDocumentBuilder();Document document=db.newDocument();//设置xml中的Standalone值document.setXmlStandalone(true);Element bookStore=document.createElement("bookStore");Element book=document.createElement("book");//设置book的属性book.setAttribute("id", "1");Element name=document.createElement("name");//name.setNodeValue("小王子");    //不能实现内容的添加//添加name的内容name.setTextContent("小王子");//向book中添加name节点book.appendChild(name);//向bookStore中添加book节点bookStore.appendChild(book);//向document树中添加根节点bookStoredocument.appendChild(bookStore);//创建TransformerFactory对象TransformerFactory tff=TransformerFactory.newInstance();try {//创建Transformer对象Transformer tf=tff.newTransformer();//控制生成的xml文件换行,其中OutputKeys.INDENT即为换行tf.setOutputProperty(OutputKeys.INDENT, "yes");//从document转换,生成xmltf.transform(new DOMSource(document),new StreamResult(new File("books1.xml")));} catch (TransformerConfigurationException e) {// TODO Auto-generated catch blocke.printStackTrace();}catch (TransformerException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public static void main(String[] args) {DomTest test=new DomTest();//test.xmlParse();test.creatXml();}}


0 0
原创粉丝点击