1. ホーム
  2. xml

[解決済み] XMLにおける "loop "の標準?

2022-02-10 09:34:51

質問事項

アニメーションのための簡単なXMLファイルを設計しています。このような書き方をすることがよくあります。

<frame>
    <image>./image1.png<image/>
</frame>
<frame>
    <image>./image2.png<image/>
</frame>
<frame>
    <image>./image3.png<image/>
</frame>
...

さて、これはもちろん迷惑な話です。そこで、XMLでこのようなことが許されるといいなと思いました。

<frameset min=1 max=5>
    <image>./image#.png<image/>
</frameset>

カウンタ変数のプレースホルダを#にする。 私が疑問に思っているのは、このようなことをする標準的な方法はすでにあるのだろうかということです。 人々がすでに慣れている方法を使えば、物事はより簡単になります。

どのように解決するのですか?

テンプレートに埋め込まれたコードを実行することによって、テンプレートを最終的なXMLに変換するテンプレート言語とテンプレート評価エンジンのことです。

ですから、モデルとしては、あなたがよく知っているあらゆるテンプレート言語を使うことができます。

もちろん、既存のテンプレートエンジンソリューションにアクセスできるのであれば、それを活用するのが最も良い方法です。 例えば、JavaのJSP、PerlのEmbPerl、XSLTなどです。

EmbPerlのテンプレートのサンプルはこんな感じです。

[$ foreach my $i (1..5) $]
<frame>
    <image>./image[+$i+].png<image/>
</frame>
[$ endforeach $]

多くのテンプレートソリューションは、わずかに異なるマークアップと明らかに異なるロジック構文(Perl vs. Java vs. xxx)で、非常によく似ているように見えるでしょう。


自作ソリューションで行く場合、テンプレート言語はもちろんXMLそのものであり、次のようなものです。

<frameset min=1 max=5>
    <image part=1 content_type="constant">./image<image/>
    <image part=2 content_type="iterator_value"><image/>
    <image part=3 content_type="constant">.png<image/>
</frameset>