我有一个将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>
我想要的是followind 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图片元素)。
如果有人有想法请发帖。 提前谢谢!
安德烈