2

XSLT を使用してサブディレクトリ内のすべての XML ファイルを読み取り、結果を 1 つの XML ファイルに出力したいのですが、変換の実行方法がわかりません。

以下の構文は、ソース uri と出力 uri の両方がディレクトリの場合は機能しますが、ソース uri がディレクトリで出力 uri がファイル名の場合は機能しません。

uri のスペースは問題ではないと思います。以下の構文は、URI が引用符で囲まれている場合 (およびソースと出力が両方ともファイル名または両方のディレクトリである場合) に機能します。

私は Saxon HE プロセッサを使用していますが、必要に応じて別のツールを使用したいと考えています。

java -jar c:\saxon\saxon9he.jar -s:"C:\Temp\2011 有効な XML" -o:"C:\Temp\LookupTables.xml" -xsl:"C:\Temp\LookupTables.xsl"

4

1 に答える 1

1

collectionたとえば、関数http://www.saxonica.com/documentation/index.html#!sourcedocs/collectionsを使用して、スタイルシートで入力を考慮する必要があります。

<xsl:template name="main">
  <root>
    <xsl:apply-templates select="collection('file:///C:Temp/dir?select=*.xml')/*"/>
  </root>
</xsl:template>

次に、コマンド ライン オプションを指定して Saxon を実行し、そのディレクトリ内のすべてのファイルを取り込む-it:mainテンプレートから開始します。main*.xml

もちろん、必要に応じてファイル内のノードを処理および変換するテンプレートがあることを確認する必要がありますが、XML 構造の例を提供していないため、それを支援するために提案できることはあまりありません。

于 2013-05-26T09:15:07.947 に答える