XML串的格式化输出

来源:JavaResearch 作者: 2007-01-19 出处:pcdog.com

java  xml  
下一页 1 2 

-----------------------------------------------------------------
Author    :    zhyiwww
E-Mail    :    zhyiwww@163.com

Date    :    2007-1-10
转载请注明出处(JavaResearch.org  zhyiwww@163.com)
-----------------------------------------------------------------

如果我们格式化一个xml文件话,我们可能使用下面的方法:
try{
           SAXReader saxReader = new SAXReader(); 
        注释:先读入一个文件流
           Document doc= saxReader.read(new FileInputStream(new File(filePath)));
          
               注释:创建输出格式
          OutputFormat format = OutputFormat.createPrettyPrint();
              注释:制定输出xml的编码类型
           format.setEncoding("GBK");
        注释:创建一个文件输出流
           XMLWriter writer= new XMLWriter(new FileWriter(new File(filename)),format);
        注释:将格式化后的xml串写入到文件
           writer.write(doc);
           writer.close();      
       }catch(Exception ex){
           ……
       }

经过的步骤是:
读取xml文件,然后再格式化输出。
那么,如果我们得到了一个XML的串,当然,是在内存中的,我们有如何返回一个格式化后的串呢?
其实也很简单,就是先把xml的串读到一个流中,然后解析,在格式化输出就可以了。下面就是我的实现;

注释:str是你的参数,也就是在内存中的没有格式化过的xml串
public static String format(String str) throws UnsupportedEncodingException,
      IOException, DocumentException {
    //System.out.println(" str :  " + str);
    
    SAXReader reader=new SAXReader();
    //System.out.println(reader);
    注释:创建一个串的字符输入流
    StringReader in=new StringReader(str);
    Document doc=reader.read(in);
   // System.out.println(doc.getRootElement());
    注释:创建输出格式
    OutputFormat formater=OutputFormat.createPrettyPrint();
        注释:设置xml的输出编码
formater.setEncoding("utf-8");
    注释:创建输出(目标)
    StringWriter out=new StringWriter();
    注释:创建输出流
    XMLWriter writer=new XMLWriter(out,formater);
       注释:输出格式化的串到目标中,执行后。格式化后的串保存在out中。
writer.write(doc);
    
    //writer.close();
System.out.println(out.toString());
注释:返回我们格式化后的结果
    return out.toString();       
  }

示例:
格式化前的xml串:
 <?xml version="1.0" encoding="utf-8">
<schemes> 
   <scheme> 
     <num>0</num> 
     <line> 
        <lnName>aaaa</lnName> 
     <stops>
        <stop>
           <spName>bbbb</spName>
        </stop>
        <stop>
           <spName>ccc</spName> 
        </stop>
       <stop>
          <spName>dddd</spName>
       </stop>
       <stop>
          <spName>eee</spName>
        </stop>
        <stop>
          <spName>ffff</spName>
        </stop>
        <stop> 
          <spName>eeeee</spName>
        </stop>
    </stops>
  </line> 
  <line> 
    <lnName>pppp</lnName> 
    <stops> 
      <stop> 
        <spName>kkkk</spName>
      </stop>
     <stop>
          <spName>ssss</spName>
     </stop>
    <stop>
       <spName>eeeeee</spName>
    </stop>
    <stop>
      <spName>ttttt</spName>
    </stop>
  </stops>
  </line>
  </scheme>
 </schemes>



下一页 1 2 
上一篇:理解XML Schema: XML Schema 初步
下一篇:如何生成XML数据