posts - 19, comments - 53, trackbacks - 0, articles - 283
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          Dom4j XPath 應(yīng)用

          Posted on 2009-08-08 23:48 Gavin.lee 閱讀(746) 評論(0)  編輯  收藏 所屬分類: xml doc 操作

          Dom4j XPath同理jdom XPath,也是需要jaxen.jar包,同時注意jar包版本
          樣例test.xml

          <?xml version="1.0" encoding="gb2312"?> 
          <root id="TK12" name="管理員" value="">
          </root>


          console xml

          <?xml version="1.0" encoding="gb2312"?>
          <root id="TK12" name="管理員" value="分布"> 
            
          <cell value="北京">
              
          <element type="數(shù)值" name="人數(shù)">300</element>
            
          </cell>
            
          <cell value="天津">
              
          <element type="數(shù)值" name="人數(shù)">300</element>
            
          </cell>
            
          <cell value="上海">
              
          <element type="數(shù)值" name="人數(shù)">200</element>
            
          </cell>
          </root>


          XPath application

          package com.Gavin.dom4jXpath;

          import java.io.File;
          import java.io.IOException;
          import java.io.StringWriter;
          import java.io.UnsupportedEncodingException;
          import java.util.HashMap;
          import java.util.Iterator;
          import org.dom4j.Document;
          import org.dom4j.DocumentException;
          import org.dom4j.Element;
          import org.dom4j.io.OutputFormat;
          import org.dom4j.io.SAXReader;
          import org.dom4j.io.XMLWriter;

          public class Dom4jXpath {
              
          public static String generateXml(HashMap map) {
                  String strXml 
          = null;
                  
          if (map != null{
                      SAXReader reader 
          = new SAXReader();
                      Document document 
          = null;
                      
          try {
                          document 
          = reader.read(new File("D:/test.xml"));
                      }
           catch (DocumentException e) {
                          e.printStackTrace();
                      }

                      Element root 
          = (Element) document.selectSingleNode("//root");
                      root.attribute(
          "value").setValue("分布");
                      Iterator iter 
          = map.keySet().iterator();
                      
          while (iter.hasNext()) {
                          String key 
          = (String) iter.next();
                          String value 
          = (String) map.get(key);
                          Element element 
          = root.addElement("cell").addAttribute("value",    key);
                          element.addElement(
          "element").addAttribute("type""數(shù)值").addAttribute("name""人數(shù)").addText(value);
                      }

                      strXml 
          = encodeXml(document, "gb2312");
                  }


                  
          return strXml;
              }


              
          private static String encodeXml(Document document, String aEncode) {
                  
          // 進行編碼轉(zhuǎn)換
                  StringWriter sw = new StringWriter();
                  OutputFormat format 
          = OutputFormat.createPrettyPrint();
                  format.setEncoding(aEncode);
                  
          try {
                      XMLWriter writer 
          = new XMLWriter(format);
                      writer.setWriter(sw);
                      writer.write(document);
                  }
           catch (UnsupportedEncodingException e) {
                      e.printStackTrace();
                  }
           catch (IOException e) {
                      e.printStackTrace();
                  }

                  
          return sw.toString();
              }


              
          public static void main(String[] args) {
                  HashMap map 
          = new HashMap();
                  map.put(
          "上海""200");
                  map.put(
          "北京""300");
                  map.put(
          "天津""300");
                  System.out.println(generateXml(map));

              }


          }

          主站蜘蛛池模板: 桦甸市| 乌拉特后旗| 楚雄市| 沂南县| 民和| 什邡市| 武夷山市| 武汉市| 屏东县| 封开县| 靖江市| 什邡市| 嘉黎县| SHOW| 苍南县| 苍梧县| 富蕴县| 奎屯市| 保亭| 泾源县| 井陉县| 刚察县| 碌曲县| 林州市| 怀宁县| 肃北| 沙雅县| 岑溪市| 浦东新区| 石楼县| 同德县| 长汀县| 公主岭市| 西青区| 广南县| 樟树市| 洱源县| 宜兴市| 遂昌县| 怀集县| 三原县|