0

フォルダにたくさんのXMLファイルがあります-本の1ページに1つのXML。すべてのXMLを1つのルートXMLファイルにまとめてから、名前空間と不要な属性を削除するためにXSLを使用して最初の変換を行い(そのためのXSLスタイルシートがあります)、新しいXMLを保存してから、別のスタイルシートを使用して再度変換する必要があります(Iそれも準備しました)そして結果のテキストファイルを保存します。自宅で1つのXMLファイルを使用してOxygenで実行していますが、このプロセスを自動化して、スクリプトを使用して実行する必要があります。私はWindowsで作業する必要があり、Oxygenがないと、顧客はそのためのソフトウェアを持っておらず、自分で作成したいと考えています。!ENTITYタグを使用してルートXMLを記述せずにXMLをまとめる方法は?どのソフトウェアツール(XSL変換用)を使用できますか?Windows用のそのようなスクリプトを作成するにはどうすればよいですか?私はPythonでプログラミングを行い、Javaで少しプログラミングを行っています。どうもありがとうございます。

4

2 に答える 2

0

XMLファイルを1つのファイルとして処理できるようにまとめる場合、1つのオプションは、すべてのXMLファイルへの外部エンティティ参照を含むルートXMLファイルを生成するcmd.exeバッチスクリプトを作成することです。

おそらく次のようなものです(拡張子のないXMLファイル名がエンティティ名として許可されていると仮定します):

@echo off
del root.xml 2> nul
(
    echo ^<!DOCTYPE root [
    for %%f in (*.xml) do (echo ^<!ENTITY %%~nf SYSTEM "%%f"^>)
    echo ]^>
    echo ^<root^>
    for %%f in (*.xml) do (echo ^&%%~nf;)
    echo ^</root^>
) > root.tmp
move root.tmp root.xml > nul

または、いくつかのXMLタグを使用してファイル名を出力しdocument()、XSLTの関数を使用してファイルにアクセスすることもできます。

コマンドラインからXSLT変換を実行するには、たとえば、msxsl.exeコマンドラインユーティリティを使用できます。これは、おそらくシステムにすでにインストールされているMSXMLライブラリのフロントエンドです。

msxsl root.xml stylesheet.xsl
于 2012-07-18T12:55:21.823 に答える
0

複数のソース ドキュメントを使用する方法については、XSLT 仕様を参照してください。

于 2012-07-18T10:02:13.480 に答える