0

XML ドキュメントを CSV ドキュメントに変換する特殊なケースがあります。私のXMLには、次の構造があります。

<Pictures>
    <Picture>
        <File>picture1.jpg</File>
        <Purpose>normal</Purpose>
    </Picture>
    <Picture>
        <File>pictureX.jpg</File>
        <Purpose>normal</Purpose>
    </Picture>
    <Picture>
        <File>picture999.jpg</File>
        <Purpose>normal</Purpose>
    </Picture>
    <Picture>
        <File>picture1.jpg</File>
        <Purpose>normal</Purpose>
    </Picture>
    <Picture>
        <ID>555</ID>
        <File>detailX.jpg</File>
        <Purpose>detail</Purpose>
    </Picture>
    <Picture>
        <File>detail1.jpg</File>
        <Purpose>detail</Purpose>
    </Picture>
</Pictures>

私が欲しいのは次のCSVです:

normal1;normal2;normal3;detail1;detail2
picture1.jpg;pictureX.jpg;picture999.jpg;

ここまでは正しく変換できました。しかし問題は、私の XML には、他の目的の値を持つ Picture 要素を含めることができる他の多くの Pictures 要素があることです。

例:

<Pictures>
    <Picture>
        <File>picture1.jpg</File>
        <Purpose>normal</Purpose>
    </Picture>
</Pictures>
<Pictures>
    <Picture>
        <File>picture2.jpg</File>
        <Purpose>detail</Purpose>
    </Picture>
</Pictures>
<Pictures>
    <Picture>
        <File>pictureX.jpg</File>
        <Purpose>normal</Purpose>
    </Picture>
    <Picture>
        <File>pictureY.jpg</File>
        <Purpose>detail</Purpose>
    </Picture>
</Pictures>
<Pictures>
    <Picture>
        <File>pictureA.jpg</File>
        <Purpose>normal</Purpose>
    </Picture>
    <Picture>
        <File>pictureB.jpg</File>
        <Purpose>normal</Purpose>
    </Picture>
    <Picture>
        <File>pictureD.jpg</File>
        <Purpose>detail</Purpose>
    </Picture>
</Pictures>

CSV として:

normal1;normal2;detail1
picture1.jpg;;
;;picture2.jpg;
pictureX.jpg;;pictureY.jpg
pictureA.jpg;pictureB.jpg;pictureD.jpg

XSLTを使用するだけでそれが可能かどうか、またはその方法がわかりません。変換は高速でなければなりません (1 つの XML に 38k の Pictures 要素を簡単に含めることができます)。

誰かがアイデアを持っている場合は、投稿してください。前もって感謝します!

アンドレ

4

0 に答える 0