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

          換位思考·····
          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));

              }


          }

          主站蜘蛛池模板: 瓦房店市| 寿光市| 宜良县| 疏勒县| 呼伦贝尔市| 绍兴县| 灵武市| 海南省| 米泉市| 舟山市| 永新县| 凤台县| 濮阳县| 隆安县| 远安县| 从江县| 自贡市| 南雄市| 钦州市| 迁西县| 深水埗区| 夏河县| 墨脱县| 潢川县| 威远县| 迁西县| 旬阳县| 高淳县| 关岭| 丽水市| 永登县| 漠河县| 江口县| 宽城| 芜湖县| 乐陵市| 江安县| 凌云县| 新乡县| 南康市| 巨野县|