Как обрабатывать несколько файлов с помощью метода java-xslt? - PullRequest
1 голос
/ 08 апреля 2011

Я выполняю задачу, в которой участвуют файлы .java, .xslt, .bat и .properties.

Идея: преобразовать xml-файл с расширением tmx в txt-файл, используя xslt. 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 тоже нормально.

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 08 апреля 2011

Поскольку вы не являетесь мастером Java, мне интересно, не лучше ли вам сделать это в Ant или XProc? Оба языка основаны на XML, что позволяет вам контролировать последовательность преобразований в выбранные файлы. Мне кажется, вы пытаетесь изобрести новый синтаксис файла свойств, который является простым языком управления для обработки XSLT, и вам это не нужно, потому что несколько уже существует.

Или другим кандидатом может быть xmlsh, подобный шеллскрипту язык для управления задачами обработки XML.

0 голосов
/ 10 апреля 2011

Согласно предложению Майкла Кея, вы можете использовать простой скрипт сборки 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>
0 голосов
/ 08 апреля 2011

Попробуйте использовать файл свойств по-другому.Создайте файл пользовательских свойств, где каждая строка представляет задание обработки, где вы указываете все необходимые параметры.Ваша программа должна прочитать каждую строку файла свойств, проанализировать параметры и обработать файл (ы).За один вызов ваша программа может обработать столько файлов, сколько вы определили в файле пользовательских свойств.Чтобы прочитать файл свойств, используйте BufferedReader.readLine() и StringTokenizer или String.split() для анализа параметров.

Это просто идея.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...