我有一个将 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 图片元素)。
如果有人有想法,请发布。先感谢您!
安德烈