【问题标题】:how to process multiple files using java-xslt method?如何使用 java-xslt 方法处理多个文件?
【发布时间】:2011-08-01 04:45:28
【问题描述】:

我正在处理一个涉及 .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 xml properties xslt


    【解决方案1】:

    尝试以不同的方式使用属性文件。创建一个自定义属性文件,其中每一行代表一个处理作业,您可以在其中指定所有需要的参数。您的程序应该读取属性文件的每一行,解析参数并处理文件。通过一次调用,您的程序可以处理您在自定义属性文件中定义的任意数量的文件。为了读取属性文件,请使用BufferedReader.readLine() 和StringTokenizer 或String.split() 来解析参数。

    这只是一个想法。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-02-18
          • 1970-01-01
          • 2011-06-04
          • 1970-01-01
          • 1970-01-01
          • 2014-09-15
          • 1970-01-01
          相关资源
          最近更新 更多