XML到HTML的转换(使用XSLT);无法访问属性中的自定义标记

时间:2013-02-04 21:39:49

标签: xml xslt xslt-1.0

我有一个XML文件,我正在为其创建一个XSLT转换。 (XML => HTML)

我的XML数据定义为:

<Cells>
    <Cell Row="0" Col="0" Text="Text here"/>
    <Cell Row="1" Col="0" Text="Link &lt;URL URL=&quot;http://www.com&quot;&gt;here&lt;/URL&gt; />
</Cells>

使用XSLT1.0,如何访问@URL(获取地址)和“here”获取锚标记文本?

我将此用于我的XSLT条件:

        <xsl:choose>
          <xsl:when test="contains(@Text, '&lt;URL=')">
              <xsl:value-of select="@Text/@URL"/> // DOES NOT WORK
          </xsl:when>
          <xsl:otherwise>
            <xsl:value-of select="@Text"/>
          </xsl:otherwise>
        </xsl:choose>

我能够在“文本”属性中正确检测URL标记,但是我似乎无法通过常规方法访问此自定义标记内的任何内容。我的目标是能够访问URL参数,以便在HTML输出中完成锚标记。

1 个答案:

答案 0 :(得分:1)

将您的“链接”更改为锚标记而不是自定义格式,然后将此属性添加到您的value-of标记中,如下所示:

<xsl:value-of select="@Text" disable-output-escaping="yes" />