转载:http://aguu125.iteye.com/blog/580766
项目EDI里有一个写xslt解析xml并输出xml的功能
xslt里有调用到java类方法,测试不方便就上网找了些资料
用java类来调用xslt进行解析并输出
所用的jar库
1.Apache xalan-j_2_7_0
新建一个java类项目
加入以下jar包
引用
xml-apis.jar
serializer.jar
xercesImpl.jar
xalan.jar
xalansamples.jar
新建一个调用解析类(与例子程序SimpleTransform类一样)
-
package
com.aguu.translate;
-
-
import
java.io.FileNotFoundException;
-
import
java.io.FileOutputStream;
-
import
java.io.IOException;
-
-
import
javax.xml.transform.Transformer;
-
import
javax.xml.transform.TransformerConfigurationException;
-
import
javax.xml.transform.TransformerException;
-
import
javax.xml.transform.TransformerFactory;
-
import
javax.xml.transform.stream.StreamResult;
-
import
javax.xml.transform.stream.StreamSource;
-
-
public
class
SimpleTrans {
-
-
public
static
void
main(String[] args)
-
throws
TransformerException, TransformerConfigurationException,
-
FileNotFoundException, IOException
-
{
-
-
-
-
-
TransformerFactory tFactory = TransformerFactory.newInstance();
-
-
-
-
-
Transformer transformer = tFactory.newTransformer(new
StreamSource(
"ECMCONTAINERREPAIR_2_IMIS_CNSHA_MAP.XSLT"
));
-
-
-
-
transformer.transform(new
StreamSource(
"AUTO-IMIS_ER_EXCEL_FROMAT_2007032E.xls.xml"
),
new
StreamResult(
new
FileOutputStream(
"result.xml"
)));
-
-
System.out.println("************* The result is in birds.out *************"
);
-
}
-
}
package com.aguu.translate;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
public class SimpleTrans {
public static void main(String[] args)
throws TransformerException, TransformerConfigurationException,
FileNotFoundException, IOException
{
// Use the static TransformerFactory.newInstance() method to instantiate
// a TransformerFactory. The javax.xml.transform.TransformerFactory
// system property setting determines the actual class to instantiate --
// org.apache.xalan.transformer.TransformerImpl.
TransformerFactory tFactory = TransformerFactory.newInstance();
// Use the TransformerFactory to instantiate a Transformer that will work with
// the stylesheet you specify. This method call also processes the stylesheet
// into a compiled Templates object.
Transformer transformer = tFactory.newTransformer(new StreamSource("ECMCONTAINERREPAIR_2_IMIS_CNSHA_MAP.XSLT"));
// Use the Transformer to apply the associated Templates object to an XML document
// (foo.xml) and write the output to a file (foo.out).
transformer.transform(new StreamSource("AUTO-IMIS_ER_EXCEL_FROMAT_2007032E.xls.xml"), new StreamResult(new FileOutputStream("result.xml")));
System.out.println("************* The result is in birds.out *************");
}
}
解析类就完成了。。。
=========================================
xml,xslt编写
xslt中引入java类
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:java="class所在文件夹" exclude-result-prefixes="java">
命名空间java了,所在类路径可以是相对或绝对,如:d://com/package或是“com.package”
注意:使用可选属性xsl:exclude-result-prefixes,预防了java命名空间被包括到结果文件中。
调用:
-
-
<xsl:value-of select="java:类.方法"
/>
-
<xsl:if
test=
"java:类.方法"
/>
-
-
〈xsl:value-of select="java:Reverse.reverse(´This is a test´)"
/〉 <!--静态变量-->
-
〈xsl:value-of select="java:Reverse.reverse(./Description)"
/〉<!--元素值-->
-
〈xsl:value-of select="java:Reverse.reverse($varString)"
/〉<!--定义的变量-->
-
-
<xsl:variable name="funvalue"
select=
"mynspace.classname.new()"
/>
//这里是静态方法
<xsl:value-of select="java:类.方法"/>
<xsl:if test="java:类.方法"/>
//如果有参数,String类型
〈xsl:value-of select="java:Reverse.reverse(´This is a test´)" /〉 <!--静态变量-->
〈xsl:value-of select="java:Reverse.reverse(./Description)" /〉<!--元素值-->
〈xsl:value-of select="java:Reverse.reverse($varString)" /〉<!--定义的变量-->
//如果需要实例化类(尚未跑通)
<xsl:variable name="funvalue" select="mynspace.classname.new()"/>
杯具了,发现Eclipse3.5的javaee版本自身就带了个xslt转换的插件还可以debugg。。
分享到:
相关推荐
标签:apache-xml-xalan.jar.zip,apache,xml,xalan,jar.zip包下载,依赖包
本文相关代码,解压为一个eclipse工程 博文链接:https://capslk.iteye.com/blog/457347
标签:ant-apache-xalan2-1.8.3.jar,ant,apache,xalan2,1.8.3,jar包下载,依赖包
标签:ant-apache-xalan2-1.8.1.jar,ant,apache,xalan2,1.8.1,jar包下载,依赖包
xalan 系列最新全部jar包...xalan jar包(包括serializer.jar、xalan.jar、xercesImpl.jar、xml-apis.jar、xsltc.jar) 可以用于解决: Provider org.apache.xalan.processor.TransformerFactoryImpl not found错误。
serializer.jar,xalan.jar,xalan-2.7.0.jar,xercesImpl.jar,xsltc.jarxml-apis.jar,解决tomcat和jdk1.6以上Provider org.apache.xalan.processor.TransformerFactoryImpl not found,或者 Error filterStart
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
java developer xalan tools
Xalan XSL Transformer xalan jar 2.7.2 xalan jar 2.7.2 xalan jar 2.7.2
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
Xalan-C++ (named after a rare musical instrument) implements the W3C Recommendation 16 November 1999 XSL Transformations (XSLT) Version 1.0 and the XML Path Language (XPath) Version 1.0. XSLT is the ...
本实例主要是通过json-libjar包中的工具类进行操作,简单实现了xml字符串和json字符串之间的转化,xml文件和json文件的转化。而且还兼容jsonObject和jsonArray两种格式,自己摸索,记录一下以便学习。
Apache Xalan 的简单 gui、Apache Xerces 的 gui 和 json-lib 库的 gui 用于快速测试 XPATH 表达式和 XSLT 转换结果。 访问: : 了解更多细节和屏幕截图(或建议) 变更日志: 1.2 新特性:xml批量验证。 针对同一...
标签:ant-apache-xalan2-1.8.0.jar,ant,apache,xalan2,1.8.0,jar包下载,依赖包
serializer.jar、xalan.jar、xercesImpl.jar和xml-apis.jar Provider org.apache.xalan.processor.Transforme
标签:ant-apache-xalan2-1.8.4-sources.jar,ant,apache,xalan2,1.8.4,sources,jar包下载,依赖包
标签:ant-apache-xalan2-1.8.3-sources.jar,ant,apache,xalan2,1.8.3,sources,jar包下载,依赖包
标签:ant-apache-xalan2-1.9.1.jar,ant,apache,xalan2,1.9.1,jar包下载,依赖包