如何使用JavaXSLT方法处理多个文件?
我正在处理一项任务,其中涉及.java、.xslt、.bat和.properties文件 想法:使用xslt将扩展名为tmx的基于xml的文件转换为txt文件。Java被用作一种媒介,连接.properties和xslt。在属性文件中,指定了一些参数 xml=abc.tmx xsl=aaa.xsl 输出=bbb.txt bat文件充当启动器:如何使用JavaXSLT方法处理多个文件?,java,xml,properties,xslt,Java,Xml,Properties,Xslt,我正在处理一项任务,其中涉及.java、.xslt、.bat和.properties文件 想法:使用xslt将扩展名为tmx的基于xml的文件转换为txt文件。Java被用作一种媒介,连接.properties和xslt。在属性文件中,指定了一些参数 xml=abc.tmx xsl=aaa.xsl 输出=bbb.txt bat文件充当启动器: java -Xms512m -Xmx768m -DentityExpansionLimit=2000000 -classpath . transforma
java -Xms512m -Xmx768m -DentityExpansionLimit=2000000 -classpath . transformations.TMXTransform
您可以想象,我必须为每个处理修改属性文件,只生成一个输出,这在效率方面并不理想
现在我想有一个更好的解决方案
提前感谢。尝试以不同的方式使用属性文件。创建自定义特性文件,其中每一行表示一个处理作业,您可以在其中指定所有需要的参数。您的程序应该读取属性文件的每一行,解析参数并处理文件。通过一次调用,您的程序可以处理自定义属性文件中定义的任意多个文件。要读取属性文件,请使用
BufferedReader.readLine()
和StringTokenizer
或String.split()
来解析参数
这只是一个想法。尝试以不同的方式使用属性文件。创建自定义特性文件,其中每一行表示一个处理作业,您可以在其中指定所有需要的参数。您的程序应该读取属性文件的每一行,解析参数并处理文件。通过一次调用,您的程序可以处理自定义属性文件中定义的任意多个文件。要读取属性文件,请使用
BufferedReader.readLine()
和StringTokenizer
或String.split()
来解析参数
这只是一个想法。既然您不是Java向导,我想知道在Ant或XProc中这样做是否会更好?两者都是基于XML的语言,允许您控制对选定文件的一系列转换。在我看来,您似乎正在尝试发明一种新的属性文件语法,它是用于XSLT处理的简单控制语言,您不需要这样做,因为已经存在几种
或者另一个候选者是xmlsh,一种类似于shellscript的语言,用于控制XML处理任务。既然您不是Java向导,我想知道在Ant或XProc中这样做是否会更好?两者都是基于XML的语言,允许您控制对选定文件的一系列转换。在我看来,您似乎正在尝试发明一种新的属性文件语法,它是用于XSLT处理的简单控制语言,您不需要这样做,因为已经存在几种
或者另一个候选者是xmlsh,一种类似于shellscript的语言,用于控制XML处理任务。根据Michael Kay的建议,您可以使用一个简单的ANT构建脚本(如本脚本)来转换所有的*.tmx文件
<project name="TranformXml" basedir="." default="TransformFiles">
<target name="TransformFiles">
<xslt basedir="${basedir}"
destdir="build"
style="transform.xsl"
includes="*.tmx"
extension="_output.txt">
</xslt>
</target>
</project>
根据Michael Kay的建议,您可以使用一个简单的ANT构建脚本(如本脚本)来转换所有的*.tmx文件
<project name="TranformXml" basedir="." default="TransformFiles">
<target name="TransformFiles">
<xslt basedir="${basedir}"
destdir="build"
style="transform.xsl"
includes="*.tmx"
extension="_output.txt">
</xslt>
</target>
</project>