当属性还包含 xsi:type 属性时,如何使用 XSL 匹配模板标记对其进行筛选



这是我的xml文件:

<products>
<product xsi:type="Styles" locale="en_US">
<pageid>abcdef</pageid>
<totalStyles>4</totalStyles>
</product>
<product xsi:type="Styles" locale="en_CA">
<pageid>abcdef</pageid>
<totalStyles>2</totalStyles>
</product>
</products>

XSL 代码:

<xsl:template match="products/product">
        <xsl:value-of select="pageid" />
</xsl:template>

如 xml 文件中所列,我有两个具有相同 pageid 但具有不同"区域设置"值的"产品"标签。我想过滤"区域设置"并检索仅对应于 locale=en_US 的"总样式"标签值。有人可以建议我如何修改我的模板匹配以过滤区域设置值。

以下代码在 xsi:type 不退出时有效。但是,这种方法在我有 xsi:type 组件以及语言环境的情况下失败了。

<xsl:template match="products/product[@locale='en_US']">
    <xsl:value-of select="totalStyles"/>
</xsl:template>

提前谢谢。

对不起,如果我没有正确形成问题。

<xsl:template match="products/product[@locale='en_US']">
    <xsl:value-of select="totalStyles"/>
</xsl:template>

我使用以下逻辑来过滤属性值:

<xsl:template match="products/product">
<xsl:if test="@locale='en_US'">
      "Process Record"
</xsl:if>

最新更新