xslt在同一元素上应用具有不同模式的2个模板,同时保留在xml中定义的顺序

时间:2012-05-03 06:23:54

标签: xslt xpath

我有一个包含项目的xml文件。我想根据视图属性输出项目列表,并保留元素的顺序。为此,我必须使用不同模式的xsl:templates。问题是我不能保留与xml中相同的顺序。 xml如下:

   <item />
   <item view="new" />
   <item />
   <item view="new" />

模板是:

<xsl:template match="item" mode="standart">
    <div class="standart_item"></div>
</xsl:template>

<xsl:template match ="item" mode="new">
    <div class="new_item"></div>
</xsl:template>

如何应用不同的模板来保存订单,与xml相同?

<div class="standart_item"></div>
<div class="new_item"></div>
<div class="standart_item"></div>
<div class="new_item"></div>

1 个答案:

答案 0 :(得分:1)

使用不同的模式似乎不是您尝试实现的结果的正确工具。我建议用谓词区分模板:

<xsl:template match="item">
  <div class="standard_item"></div>
</xsl:template>

<xsl:template match="item[@view='new']">
  <div class="new_item"></div>
</xsl:template>