我是XSLT的初学者,我想根据XML文件中的特定属性将XML文件拆分为多个HTML文件。
以下是我的XML文件示例:
<article>
<div>
<paragraph>text text text</paragraph>
</div>
<div class="zoologie">
<def>this is a definition</def>
<def>this is another definition</def>
<example>this is a first example</example>
<example>this is a second example</example>
</div>
</article>
<article>
<div>
<paragraph>text text text</paragraph>
</div>
<div class="médecine">
<def>this is a definition</def>
<def>this is another definition</def>
<example>this is a first example</example>
<example>this is a second example</example>
</div>
</article>
<article>
<div>
<paragraph>text text text</paragraph>
</div>
<div class="zoologie">
<def>this is a definition</def>
<def>this is another definition</def>
<example>this is a first example</example>
<example>this is a second example</example>
</div>
</article>
我想要获得的是一个HTML文件,该文件分组包含具有相同属性类的所有文章。例如,一个名为zoologie.html的HTML文件收集包含属性class =“zoologie”的所有文章。另一个名为médecine.html的HTML文件收集了属性为class =“médecine”的所有文章。我已尝试过拆分功能,但它不起作用。如果你能帮助我,我将不胜感激。 谢谢, FLO
答案 0 :(得分:0)
这是一个经典的XSLT 2.0构造:
<xsl:for-each-group select="article" group-by="div/@class">
<xsl:result-document href="{current-grouping-key()}.xml">
<articles>
<xsl:copy-of select="current-group()"/>
</articles>
</xsl:result-document>
</xsl:for-each-group>
XSLT 1.0没有任何内置功能可以进行分组或生成多个输出文件,但某些1.0处理器可能有供应商扩展,可以提供帮助。