(整理)java dom 创建解析XML例子

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

   
        get
        list
        request_param1|request_param2
   
   
        post
        content
        title,publisher,published_calendar
   


-----------------------------------
生成并解析以上文件

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
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.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class Test {

    /**
     * @param args
     */
    public static void main(String[] args) {

        try {
            // 解析器工厂类
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            // 解析器
            DocumentBuilder builder = factory.newDocumentBuilder();
            // 操作的Document对象
            Document document = builder.newDocument();
            // 设置XML的版本

            document.setXmlVersion("1.0");

            // 创建根节点
            Element root = document.createElement("MobileNet");

            // 将根节点添加到Document对象中
            document.appendChild(root);

            /** the first page */
            // 设置第一个page元素到
            Element pageElement = document.createElement("page");

            // 设置page节点的name属性
            pageElement.setAttribute("name", "list.jsp");

            /** method */
            // 设置method节点
            Element methodElement = document.createElement("method");

            // 给method设置值
            methodElement.setTextContent("get");

            // 添加method节点到page节点内
            pageElement.appendChild(methodElement);
            /** display */
            // 设置method节点
            Element displayElement = document.createElement("display");

            // 给display设置值
            displayElement.setTextContent("list");

            // 添加display节点到page节点内
            pageElement.appendChild(displayElement);

            /** request_param */
            // 设置request_param节点
            Element request_paramElement = document.createElement("request_param");

            // 给request_param设置值
            request_paramElement.setTextContent("request_param1|request_param2");

            // 添加request_param节点到page节点内
            pageElement.appendChild(request_paramElement);

            // 将page段加人根节点内
            root.appendChild(pageElement);

            /** the second page */
            // 设置第二个page元素到
            pageElement = document.createElement("page");

            // 设置page节点的name属性
            pageElement.setAttribute("name", "content.jsp");

            /** method */
            // 设置method节点
            methodElement = document.createElement("method");

            // 给method设置值
            methodElement.setTextContent("post");

            // 添加method节点到page节点内
            pageElement.appendChild(methodElement);

            /** display */
            // 设置method节点
            displayElement = document.createElement("display");

            // 给display设置值
            displayElement.setTextContent("content");

            // 添加display节点到page节点内
            pageElement.appendChild(displayElement);

            /** url_title */
            // 设置url_title节点
            Element url_titleElement = document.createElement("url_title");

            // 给url_title设置值
            url_titleElement.setTextContent("title,publisher,published_calendar");

            // 添加url_title节点到page节点内
            pageElement.appendChild(url_titleElement);

            // 将page段加人根节点内
            root.appendChild(pageElement);

            // 开始把Document映射到文件
            TransformerFactory transFactory = TransformerFactory.newInstance();
            Transformer transFormer = transFactory.newTransformer();

            // 设置输出结果
            DOMSource domSource = new DOMSource(document);

            // 生成xml文件
            File file = new File("MobileNetRule.xml");

            // 判断是否存在,如果不存在,则创建
            if (!file.exists()) {
                file.createNewFile();
            }

            // 文件输出流
            FileOutputStream ut = new FileOutputStream(file);

            // 设置输入源
            StreamResult xmlResult = new StreamResult(out);

            // 输出xml文件
            transFormer.transform(domSource, xmlResult);

            // 测试文件输出的路径
            System.out.println(file.getAbsolutePath());

            // 读取----------------------------------------

                       
                InputStream in = new FileInputStream("MobileNetRule.xml"); 
                DocumentBuilderFactory factory2 = DocumentBuilderFactory.newInstance(); 
                DocumentBuilder builder2 = factory.newDocumentBuilder(); 
                Document document2 = builder.parse(in); 
                Element root2 = document.getDocumentElement(); 
                System.out.println(root2.getNodeName());
                NodeList valueNode = root.getElementsByTagName("page");
               
              for(int i=0;i              {
                  Node node =valueNode.item(i);
                  System.out.println(node.getNodeName()+"  "+node.getAttributes().getNamedItem("name").getNodeValue());
                  System.out.println("   |");
                   NodeList childNode=node.getChildNodes();
                  
                      for(int j=0;j                      {
                          Node ccNode=childNode.item(j);
                          System.out.print("  节点:"+ccNode.getNodeName());
                          System.out.print("  ");
                          System.out.print("content:"+ccNode.getTextContent());
                          System.out.println("  ");
                       
                      }
                  }
          
        } catch (Exception ex) {
            ex.printStackTrace();

        }
    }

}


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/18760228/viewspace-772552/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/18760228/viewspace-772552/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值