如何使用java-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 . transformations.TMXTransform

您可以想象,我必须为每个处理修改属性文件,只生成一个输出,这在效率方面并不理想。

现在我想有一个更好的解决方案。

  1. 所有文件在一个特定的位置与特定的扩展名被自动检测,说a.tmx, b.tmx, c.tmx....z.tmx

  2. 通过双击,相应的具有可定制文件名的txt输出文件(例如a_output.txt, b_output.txt…z_output.txt)被生成到指定位置。

我想这并不难,但是因为我是Java新手,我想知道是否有人可以帮助我。

顺便说一下,直接使用xslt也是可以的。

既然您不是Java向导,我想知道您在Ant或XProc中这样做是否会更好?两者都是基于xml的语言,允许您控制对选定文件的一系列转换。在我看来,您似乎正在尝试发明一种新的属性文件语法,它是用于XSLT处理的简单控制语言,而且您不需要这样做,因为已经存在几种。

或者另一个候选是xmlsh,一种用于控制XML处理任务的类似shellscript的语言。

尝试以另一种方式使用属性文件。创建一个自定义属性文件,其中每行表示一个处理作业,在其中指定所有需要的参数。您的程序应该读取属性文件的每一行,解析参数并处理文件。通过一次调用,您的程序可以处理自定义属性文件中定义的尽可能多的文件。为了读取属性文件,使用BufferedReader.readLine()StringTokenizerString.split()来解析参数。

这只是一个想法。

根据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>

相关内容

  • 没有找到相关文章

最新更新