亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Java 與 XML 結合使用的心得體會(三)

2019-11-18 12:49:57
字體:
來源:轉載
供稿:網友

  xmlBuilder.class 主要是把指定的document.node對象轉換成規范的xml字符串。用的是ibm的xml4j解析器.代碼如下:
  
  package com.ceic.workflow.xml;
  import java.io.OutputStreamWriter;
  import java.io.PRintWriter;
  import java.io.UnsupportedEncodingException;
  import org.w3c.dom.Attr;
  import org.w3c.dom.document.
  import org.w3c.dom.Element;
  import org.w3c.dom.NamedNodeMap;
  import org.w3c.dom.Node;
  import org.w3c.dom.NodeList;
  import com.ibm.xml.parsers.*;
  
  /**
   * Title:    有效XML 字符串生成工具
   * Description: 有效XML 字符串生成工具
   * Copyright:  Copyright (c) 2003
   * Company:   國電信息中心
   * @author 張治中
   * @version 1.0
   * 有效XML 字符串生成工具
   * 例如:
   * XmlBuilder build=new XmlBuilder();
   * document.nbspdoc=((document.Class.forName("com.ibm.xml.
   * dom.document.mpl").newInstance())
   * ..........
   * build.printDOMTree(doc);
   * String xmlString=build.getXmlResult();
   * 再把xmlString用XmlOutput類去輸出成xml文件.
   */
  public class XmlBuilder
  {
  private String lineSeparator="/r";
  private String xmlString="";
  private int indentLevel=0;
  protected static String STANDARD_INDENT=" ";
  private String XmlHeader="<?xml version=/"1.0/" ?>";
  private int currentlevel=0;
   /**
    * 生成XML字符串.
    * @param node 要生成字符串的document.其它Node.
    */
   public void printDOMTree(Node node){
   printDOMTree(node,indentLevel,false);
   }
  
   /**
    * 生成XML字符串.
    * @param node 要生成字符串的document.其它Node.
    * @param noTop 是否去除頭尾,假如為document.象去掉<?xml.../?>頭
    */
   public void printDOMTree(Node node,boolean noTop){
      printDOMTree(node,indentLevel,noTop);
   }
   /**
    * 生成XML字符串.
    * @param node 要生成字符串的document.其它Node.
    * @param level 節點的深度.(中間變量)
    * @param noTop 是否去除頭尾,假如為document.象去掉<?xml.../?>頭
    */
   private void printDOMTree(Node node,int level,boolean noTop)
   {
    int templevel=level;
    int find=0;
    short toptype=0;
    String topvalue="";
    int type = node.getNodeType();
    switch (type)
    {
     // print the document.nbspelement
     case Node.document.NODE:
     {
      find++;
      if(!noTopfind>1){
      xmlString+=XmlHeader+lineSeparator;
      }else{
       toptype=Node.document.NODE;
      }
      printDOMTree(((document.node).getdocument.lement(),
   templevel+1,false);
      break;
     }
  
     // print element with attributes
     case Node.ELEMENT_NODE:
     { find++;
  
     if(!noTopfind>1){
      currentlevel=templevel;
      xmlString+=printIndent(templevel);
      xmlString+=lineSeparator+"<";
      xmlString+=node.getNodeName();
      NamedNodeMap attrs = node.getAttributes();
      for (int i = 0; i < attrs.getLength(); i++)
      {
       Node attr = attrs.item(i);
       xmlString+=" " + attr.getNodeName() +"=/"" +
    attr.getNodevalue() +"/"";
      }
      xmlString+=">"+lineSeparator;
     }
     else{
      toptype=Node.ELEMENT_NODE
      topvalue="</"+node.getNodeName()+">"+lineSeparator;
      }
      NodeList children = node.getChildNodes();
      if (children != null)
     {
       int len = children.getLength();
       for (int i = 0; i < len; i++)
        printDOMTree(children.item(i),templevel+1,false);
     }
  
      break;
     }
  
     // handle entity reference nodes
     case Node.ENTITY_REFERENCE_NODE:
     {
      find++;
      xmlString+="&";
      xmlString+=node.getNodeName();
      xmlString+=";";
      break;
     }
  
     // print cdata sections
     case Node.CDATA_SECTION_NODE:
     {
      find++;
      xmlString+="<![CDATA[";
      xmlString+=node.getNodevalue();
      xmlString+="]]>";
      break;
     }
  
     // print text
     case Node.TEXT_NODE:
     {
       find++;
  //    String temp=node.getNodevalue();
  //    if(!temp.equals(" ")&&!temp.equals("/n")
  //     &&!temp.equals("/r"))
       xmlString+=node.getNodevalue();
      break;
     }
  
     // print processing instrUCtion
     case Node.PROCESSING_INSTRUCTION_NODE:
     {
      find++;
      xmlString+="<?";
      xmlString+=node.getNodeName();
      String data = node.getNodevalue();
      {
       xmlString+=" ";
       xmlString+=data;
      }
      xmlString+="?>";
      break;
     }
    }
  
    if (type == Node.ELEMENT_NODE)
    {
     find++;
     if(currentlevel!=templevel){
       xmlString+=printIndent(templevel);
       xmlString+=lineSeparator;
     }
     xmlString+="</";
     xmlString+=node.getNodeName();
     xmlString+=">"+lineSeparator;
    }
    if(noTop&&toptype==Node.ELEMENT_NODE){
     int len=xmlString.length()
     int tlen=topvalue.length()
     xmlString=xmlString.substring(0,len-tlen);
    }
   }
  /**
  * 生成行前的STANDARD_INDENT(一般指空格)
  * @param num STANDARD_INDENT的個數
  * @return String
  */
  private String printIndent(int num){
   String temp="";
   if(num>0){
   for(int i=0;i<num;i++){
    temp+=STANDARD_INDENT;
   }
   }
   return temp;
  }
  /**
  * 設定行前的STANDARD_INDENT(一般指空格)
  * @param indent STANDARD_INDENT的值
  */
  public void setIndent(String indent){
   STANDARD_INDENT=indent;
  }
  /**
  * 獲得已經生成的xml字符串.在printDOMTree(Node node)方法后有效
  * @return String
  */
  public String getXmlResult(){
   return xmlString;
  }
  /**
  * 設定最開始的深度級別(直接影響行前的STANDARD_INDENT(空格)數)
  * @param level 級別數
  */
  public void setBeginLevel(int level){
   indentLevel=level;
  }
  /**
  * 設定xml文件的xml頭
  * @param header xml文件xml頭。例如:<?xml version=/"1.0/" ?>
  */
  public void setXmlHeader(String header){
   XmlHeader=header;
  }
  /**
  * 設定換行符 默認為"/r/n"
  * @param lineseparator 換行分割符,默認為"/r/n"
  */
  public void setlineSeparator(String lineseparator){
   lineSeparator=lineseparator;
  }
  }
  
  
  
    XMLOutput.class 功能是用指定的string或InputStream生成文件(不一定是xml文件)。代碼如下:
  
  package com.ceic.workflow.xml
  import org.w3c.dom.*;
  import java.io.*;
  import java.util.*;
  /**
   * Title:    有效XML 字符串生成xml文件的工具
   * Description: 有效XML 字符串生成xml文件的工具
   * Copyright:  Copyright (c) 2003
   * Company:   國電信息中心
   * @author 張治中
   * @version 1.0
   */
  public class XmlOutput{
  private String objectpath;
  pri

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩免费观看在线观看| 欧美在线视频导航| 福利视频一区二区| 国产精品成人va在线观看| 国模叶桐国产精品一区| 最近中文字幕mv在线一区二区三区四区| 欧美第一黄网免费网站| 中文字幕日本欧美| 日韩欧美成人免费视频| 国产亚洲精品一区二区| 91免费视频网站| 欧美一区二区三区免费视| 久久久亚洲影院你懂的| 欧美日韩国产中字| 国产69精品99久久久久久宅男| 欧美激情视频给我| 最近2019年好看中文字幕视频| 国内成人精品一区| 91精品国产91久久久久久吃药| 久热爱精品视频线路一| 国产精品视频区1| 久久艳片www.17c.com| 国产精品狼人色视频一区| 日本不卡免费高清视频| 日韩欧美中文在线| 日本欧美精品在线| 中文字幕亚洲欧美日韩2019| 久久福利视频导航| 欧美成人午夜激情在线| 国产亚洲成av人片在线观看桃| 91精品视频网站| 粉嫩老牛aⅴ一区二区三区| 丰满岳妇乱一区二区三区| 日本精品一区二区三区在线| 国产欧美最新羞羞视频在线观看| 国产91在线视频| 精品自拍视频在线观看| 国产精品视频一| 久久影院资源站| 97久久久免费福利网址| 欧美亚洲国产日韩2020| 国产区精品在线观看| 亚洲国产日韩欧美在线动漫| 亚洲人成网站在线播| 国产精品久久久久久久久免费| 91精品视频免费看| 久久视频这里只有精品| 欧美日韩成人在线观看| 日韩国产中文字幕| 国产精品91久久久久久| 欧美在线www| 国产精品自拍小视频| 色青青草原桃花久久综合| 亚洲国产精品久久久| 欧美亚洲激情视频| 欧美性生活大片免费观看网址| 亚洲最大福利视频网站| 国产精品视频免费观看www| 欧美香蕉大胸在线视频观看| 国产精品高潮呻吟久久av野狼| 91高清在线免费观看| 日韩成人小视频| 欧美高清不卡在线| 成人a视频在线观看| 欧美精品久久一区二区| 日韩高清免费在线| 精品国产网站地址| 91夜夜未满十八勿入爽爽影院| 久久国产精品久久久| 久久好看免费视频| 日韩网站免费观看| 中文字幕最新精品| 亚洲视频在线观看| 亚洲国产精品视频在线观看| 欧美一区二区三区免费观看| 97在线视频国产| 国产视频精品va久久久久久| 97成人精品区在线播放| 国产精品视频永久免费播放| 欧美极品少妇xxxxⅹ免费视频| 久久久久久久久综合| 最新中文字幕亚洲| 性欧美亚洲xxxx乳在线观看| 成人黄色免费在线观看| 亚洲午夜精品视频| 美日韩精品免费视频| 国产综合视频在线观看| 国产亚洲精品美女久久久久| 国产精品视频白浆免费视频| 欧美激情精品久久久久久久变态| 国产精品免费看久久久香蕉| 成人免费网站在线看| 亚洲一区二区三区sesese| 久久成人综合视频| 亚洲影视中文字幕| 国产成人精品免费久久久久| 91亚洲国产成人久久精品网站| 欧美极品少妇xxxxx| 久久亚洲精品小早川怜子66| 97精品伊人久久久大香线蕉| 国产在线观看不卡| 91天堂在线视频| 国产免费一区二区三区在线能观看| 国产精品久久一| 国产欧美日韩专区发布| 亚洲激情视频网站| 成人亚洲欧美一区二区三区| 日本免费一区二区三区视频观看| 亚洲精品第一页| 成人激情视频小说免费下载| 久久久噜噜噜久噜久久| 亚洲成人动漫在线播放| 中文字幕亚洲色图| 欧美高清视频在线播放| 成人精品久久av网站| 国产一区二区三区精品久久久| 日韩经典第一页| 日韩av电影免费观看高清| 亚洲欧洲在线播放| 欧美日韩成人网| 97不卡在线视频| 欧美夫妻性视频| 亚洲欧美日韩中文在线制服| 91九色视频导航| 国产欧美日韩中文字幕| 国产97在线播放| 久久精品福利视频| 国产精品露脸av在线| 成人日韩av在线| 国产精品一区二区久久| 国产福利成人在线| 国产精品久久久久久久久久久新郎| 色综合91久久精品中文字幕| 国产精品久久久久久久av电影| 欧美肥臀大乳一区二区免费视频| 精品久久久久久电影| 日韩av电影中文字幕| 国产一区二区三区在线播放免费观看| 国产精品毛片a∨一区二区三区|国| 欧美福利视频网站| 国产精品亚洲综合天堂夜夜| 国产精品久久久久av免费| 青草热久免费精品视频| 55夜色66夜色国产精品视频| 日韩视频免费中文字幕| 亚洲第一精品久久忘忧草社区| 国产精品18久久久久久首页狼| 国产综合久久久久久| 一区二区欧美激情| 日韩av理论片| 亚洲欧美日韩高清| 日韩欧美精品免费在线| 亚洲男人天堂手机在线| 色婷婷成人综合| 色综合五月天导航| 国产香蕉一区二区三区在线视频| 美乳少妇欧美精品| 久久69精品久久久久久国产越南| 欧美风情在线观看| 欧美性受xxxx白人性爽| 亚洲精品美女在线| 97国产真实伦对白精彩视频8| 欧美极品在线视频| 性色av一区二区三区免费|