無線&移動互聯網技術研發

          換位思考·····
          posts - 19, comments - 53, trackbacks - 0, articles - 283
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          Dom4j XPath 應用

          Posted on 2009-08-08 23:48 Gavin.lee 閱讀(744) 評論(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="數值" name="人數">300</element>
            
          </cell>
            
          <cell value="天津">
              
          <element type="數值" name="人數">300</element>
            
          </cell>
            
          <cell value="上海">
              
          <element type="數值" name="人數">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""數值").addAttribute("name""人數").addText(value);
                      }

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


                  
          return strXml;
              }


              
          private static String encodeXml(Document document, String aEncode) {
                  
          // 進行編碼轉換
                  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));

              }


          }

          主站蜘蛛池模板: 科尔| 东宁县| 清徐县| 双峰县| 成安县| 百色市| 江阴市| 华宁县| 海淀区| 光泽县| 潜江市| 五指山市| 陇西县| 潞城市| 进贤县| 遂平县| 新郑市| 邵阳县| 梅河口市| 汪清县| 墨玉县| 正安县| 神农架林区| 宁远县| 丰镇市| 民乐县| 浏阳市| 视频| 临清市| 永和县| 五指山市| 寿阳县| 平顶山市| 临朐县| 大姚县| 平谷区| 牙克石市| 德化县| 新安县| 郧西县| 始兴县|