他のいくつかのxmlファイルにアクセスするためにxincludeを使用するxmlドキュメントがあります。
<chapter xml:id="chapter1">
<title>Chapter in Main Doc</title>
<section xml:id="section">
<title>Section in Main Doc 1</title>
<mediaobject>
<imageobject>
<imagedata fileref="images/car.jpg"/>
</imageobject>
</mediaobject>
</section>
<xi:include href="../some-doc/section1.xml"/>
<xi:include href="../some-doc/section2.xml"/>
これらの他の section1 および section2 xml ファイルは、異なるソースの場所で異なる画像を使用しています。これらのすべての画像を単一の出力ディレクトリにコピーする必要があります。そのため、最初は、XSLT を使用して xml ドキュメント全体を解析し、コピーする画像のリストを生成することを計画しています。XSLT を使用して xml ファイルの画像のリストを生成するにはどうすればよいですか? あなたのアイデアは本当に感謝しています。
前もって感謝します..!!
追加した:
以下の回答済み XSLT 1.0 コードを試してみました。それを使用してhtml出力を生成すると、「chapter1、section ...」のような章とセクションIDのみが表示されます。imagedata ノード内のイメージ パス値は表示されません。
しかし、変更すると、xincluded xml ファイルのすべての画像パス値も表示されます<xsl:template match="@*|node()">
。<xsl:template match="*">
しかし、上記のような他のノードの値もあります。画像パス以外のすべての値をフィルター処理する必要があります。
ここでは、すべての xml ドキュメントのイメージ パスのみをコピーし、それらのすべてのパスを配列などに保持する必要があります。次に、Javaクラスを使用して、保存された画像パスを画像コピーの目的で使用できます。