次のような状況があります。
<List>
<Entry>
<![CDATA[......]]>
</Entry>
<Entry>
<![CDATA[......]]>
</Entry>
...
</List>
CDATA セクションには、エンコードされたバイトが含まれます。各エントリの cdata には、最初のワードとして制御ワードがあり、ファイルに入れるデータの長さと、そのファイルにシークするデータの量を記述します。例: 00060000abcdef は、"abcdef" を含み、0 をシークする長さ 6 のファイルを意味します。出力は、abcdef を含むファイルである必要があります。
XSLT は、特定の方法で CDATA を解釈してファイルに書き込むための正しい選択ですか?
- Xalan のように redirect:write を使用することを考えることができます
これを処理するには、パーサー ハンドラーに割り込む何らかのカスタム XSLT 関数を使用します。
<xsl:MyFunc></xsl:MyFunc>
for、if などを使用してカスタム XSLT 関数をタグとして記述する方法はありますか?
Dimitre Novatchev のフィードバック後の編集:
返信ありがとうございます!以下で質問が明確になることを願っています。ごめん。
入力 XML ファイル:
<File>
<Chunk>
<Offset>200</Offset>
<Length>100</Length>
<Data>
<![CDATA[data bytes that can be greater than 100 too, but first 100 is valid.]]>
</Data>
</Chunk>
...
</File>
出力は、次のような html ファイルである必要があります。
<html>
<body>
<a href="resulting_file">file</a>
</body>
</html>