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 中有许多其他图片元素可以包含具有其他用途值的图片元素。

例子:

<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 或如何做到这一点。转换必须快速(一个 XML 可以轻松包含 38k 图片元素)。

如果有人有想法,请发布。先感谢您!

安德烈

4

0 回答 0