如何使用JavaXSLT方法处理多个文件?

如何使用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、.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
您可以想象,我必须为每个处理修改属性文件,只生成一个输出,这在效率方面并不理想

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

  • 自动检测特定位置中具有特定扩展名的所有文件,例如a.tmx、b.tmx、c.tmx…z.tmx

  • 双击一下,相应的txt输出文件和可定制的文件名,比如a_output.txt,b_output.txt…z_output.txt)被生成到一个特定的位置

  • 我想这并不难,但由于我是Java新手,我想知道是否有人能帮忙

    顺便说一句,直接使用xslt也可以


    提前感谢。

    尝试以不同的方式使用属性文件。创建自定义特性文件,其中每一行表示一个处理作业,您可以在其中指定所有需要的参数。您的程序应该读取属性文件的每一行,解析参数并处理文件。通过一次调用,您的程序可以处理自定义属性文件中定义的任意多个文件。要读取属性文件,请使用
    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>