在xmlspy中使用java的xslt轉換 (轉)

worldblog發表於2007-12-12
在xmlspy中使用java的xslt轉換 (轉)[@more@]

在spy中使用的t轉換.

我喜歡在xmlspy中來寫xml, xsl, xsd, 並且用xmlspy自帶的xslt工具或者利用msxml來檢視xslt轉換結果. 在實際使用中發現儘管xmlspy的xslt有些小, 但是它能提供具體的錯誤位置, 排錯很方便. Java下

有xalan和saxon都可以做xslt轉換.

saxon除了支援標準的xslt1.0, 還部分支援xslt2, 其中多文件輸出特別有用. 地址:saxon.. 解後在xmlspy中如下:
java -jar C:javalibsaxon7-3-1saxon7.jar -o %2 %1 %3

xalan已經內建在1.4中, 但是沒有提供命令列方式, 這裡簡單包裝如下:

import javax.xml.transform.*;

/**
 * command line xslt using jdk1.4
 *

Title:


 *

Description:


 *

Copyright: Copyright (c)


 *

Company:


 * @author not attributable
 * @version 1.0
 */

public class XSLT {
  private static final String USAGE = "xslt 1.0: command line xslt for jdk1.4nn"
  +"command line usage: java -jar xslt.jar xmlfile xslfile outfilen"
  +"xmlspy exteral xslt setup: java -jar c:javalibxslt.jar %1 %3 %2n";

  public XSLT() {
  }

  public static void transform( xml, Source xsl, javax.xml.transform.Result out)
  throws Exception{
  TransformerFactory.newInstance().newTransformer(xsl).transform(xml,out);
  }

  public static void main(String[] args) {
  if (args.length<2){
  System.out.println(USAGE);
  return;
  }
  Source xml = new javax.xml.transform.stream.StreamSource(args[0]);
  Source xsl = new javax.xml.transform.stream.StreamSource(args[1]);
  Result out = null;
  if (args.length>2)
  out = new javax.xml.transform.stream.StreamResult(args[2]);
  else
  out = new javax.xml.transform.stream.StreamResult(System.out);
  try{
  transform(xml, xsl, out);
  }catch(Exception e){
  System.out.println("error: "+e.getMessage());
  }
  }

}

建議用jbuilder的jar builder wizard打包成xslt.jar. xmlspy中配置如下:
java -jar c:javalibxslt.jar %1 %3 %2

在執行速度上, 感覺差別不大. 還是滿快的 :)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-992383/,如需轉載,請註明出處,否則將追究法律責任。

相關文章