我正在使用XSLT 2.0(Saxon PE 9.5)使用xsl:result-document
从输入创建多个XML文件。每个项目可以包含多个项目,并且在项目中有typeA和typeB。对于每个这样的类型,我想生成和XML。
例如:
的 input.xml中:
<task>
<items>
<item>
<typeA>
<id>A1</id>
...
</typeA>
<typeB>
<id>B</id>
...
</typeB>
</item>
<item>
<typeA>
<id>A2</id>
...
</typeA>
</item>
</items>
</task>
期望的输出:
的 out1_typea.xml :
<task>
<items>
<item>
<typeA>
<id>A</id>
...
</typeA>
</item>
</items>
</task>
out1_typeb.xml :
<task>
<items>
<item>
<typeB>
<id>B</id>
...
</typeB>
</item>
</items>
</task>
out2_typea.xml :
<task>
<items>
<item>
<typeA>
<id>A2</id>
...
</typeA>
</item>
</items>
</task>
我开始使用以下转换,根据项目进行拆分:
<xsl:template match="/task">
<xsl:for-each select="items/item">
<xsl:result-document href="out{position()}.xml">
<task xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<items>
<item>
<xsl:copy-of select="*" />
</item>
</items>
<xsl:copy-of select="../../(* except items)" />
</task>
</xsl:result-document>
</xsl:for-each>
</xsl:template>
但不知道如何进一步分类。
答案 0 :(得分:2)
不仅仅是:
MyMethod(server, om => {
om.Write(data1);
om.Write(data2);
});