0

嗨,我需要一些帮助来提出一个显示元素内容的函数 if (station>='BBC'..tried -xsl:if test=("@station ='BBC'")> with没有面纱。

<chanels>
      <public>
       <programme>
         <station>BBC</station>
         <sports>soccer</sports>
         <news>local</news>
         <studio>london</studio>
         <drama>british Got talent</drama>
       </programme>
      <programme>
         <station>CNN</station>
         <sports>soccer</sports>
         <news>local</news>
         <studio>new York</studio>
         <drama>american circus</drama>
       </programme>
       <programme>
         <station>FOX8</station>
         <sports>soccer</sports>
         <news>local</news>
         <studio>Florida</studio>
         <drama>ET</drama>
       </programme>
    </public>
    </chanels>

'@' 仅用于引用节点的属性。你需要使用这样的东西:

<xsl:if test="station='BBC'">
...
</xsl:if>
4

2 回答 2

0

正如@Reinder 在他的回答中指出的那样,@用于引用属性,而不是元素。例如,使用以下 XSL 样式表来生成输入的精确副本,其中仅包含那些<programme />元素,其<station />等于'BBC'

<?xml version="1.0" encoding="UTF-8"?>
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="@*|node()">
        <xsl:copy><xsl:apply-templates select="@*|node()" /></xsl:copy>
    </xsl:template>

    <xsl:template match="programme">
        <xsl:if test="./station = 'BBC'">
            <xsl:copy><xsl:apply-templates select="@*|node()" /></xsl:copy>
        </xsl:if>
    </xsl:template>
</xsl:transform>
于 2012-10-17T07:34:59.763 回答
0

'@' 仅用于引用节点的属性。你需要使用这样的东西:

<xsl:if test="station='BBC'">
...
</xsl:if>
于 2012-10-17T07:26:22.537 回答