在XML中显示链接到HTML XSL转换

时间:2016-07-25 18:24:32

标签: html xml xslt

我正在努力通过XSL将一些XML转换为HTML,并且在显示链接时遇到了一些麻烦。 XML看起来像这样:

<c02 level="file">
    <did>
        <container type="Box">1</container>
        <container type="Folder">2</container>
        <unittitle>Folder A, </unittitle>
        <unitdate>2001</unitdate>
        <daogrp>
            <daoloc label="Image" href="www.test.com" role="Image/jpeg">
                <daodesc><p>Document</p>    
                </daodesc>
            </daoloc> 
        </daogrp>           
    </did>
    <scopecontent>
        <p>1 page</p>
    </scopecontent>
</c02>

我期望的HTML是这样的:

<tr>
                    <td valign="top">1</td>
                    <td valign="top">2</td>
                    <td valign="top" colspan="10">Folder A, 2001</td>
                </tr>
                <tr>
                    <td></td>
                    <td></td>
                    <td></td>
                    <td></td>
                    <td valign="top" colspan="8"><a href="www.test.com">Document<br />
                    </a></td>

我的XSL目前看起来像这样:

<xsl:template match="daoloc">
    <xsl:choose>
        <xsl:when test="@role='Image/jpeg'">
            <img src="{@href}" altrender="{@Document}"/>
        </xsl:when>
        <xsl:when test="@role='new'">
            <a href="{@href}">
                <xsl:value-of select="@Document"/>
            </a>
        </xsl:when>
    </xsl:choose>
</xsl:template>

我玩了一段时间但收效甚微。如何扭曲XSL以显示这些链接?感谢您提前获得任何帮助。

1 个答案:

答案 0 :(得分:0)

嗯,以下模板:

<xsl:template match="daoloc">
    <p>
        <a href="{@href}">
            <xsl:apply-templates/>
        </a>
    </p>
</xsl:template>

应用于您的输入(在labelhref属性之间添加空格后!)将返回:

<p>
   <a href="www.test.com">Document</a>
</p>