科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道XML串的格式化输出

XML串的格式化输出

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

如果我们格式化一个xml文件话,我们可能使用下面的方法: try{ SAXReader saxReader = new SAXReader(); 注释:先读入一个文件流 Document doc= saxReader.read(new FileInputStream(new File(filePath)));

作者:中国IT实验室 来源:中国IT实验室 2007年9月22日

关键字: 编程 java

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共2页)

如果我们格式化一个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>

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章