Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在XML到HTML XSL转换中显示链接_Html_Xml_Xslt - Fatal编程技术网

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

在XML到HTML XSL转换中显示链接,html,xml,xslt,Html,Xml,Xslt,我正在通过XSL将一些XML转换成HTML,但在显示链接时遇到了一些问题。XML如下所示: <c02 level="file"> <did> <container type="Box">1</container> <container type="Folder">2</container> <unittitle>Folder A, </unittitl

我正在通过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>
<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: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>

1.
2.
文件夹A,
2001
文件

1页

我期望的HTML如下所示:

<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>
<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: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>

1.
2.
文件夹A,2001年
我的XSL当前看起来是这样的:

<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>
<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: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以显示这些链接?感谢您事先提供的帮助。

好的,以下模板:

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

请显示转换的预期结果。-另外,您的输入(至少是您向我们展示的部分)没有名为
dao
)的元素,因此您的模板从未应用过,对输出没有影响。预期结果是一个超链接,显示为指向href链接的“数字对象”。我尝试在模板中同时更改为和,并将@show='new'更改为@role=“image/jpeg”,但没有效果。“预期结果是一个超链接,显示为指向href链接的“数字对象”。这一点不清楚。请编辑您的问题,并将准确的预期结果作为代码发布。谢谢。我编辑了原始帖子。谢谢,但链接似乎没有生成。请看这里的链接是否正常:您是否得到了不同的结果?用同样的输入?我明白了。它是独立工作的,但在与XML的其余部分结合时不会发生任何事情。我将根据上下文更新问题中的XML。它也适用于您更新的XML。当然,您需要更多的模板来从其他节点生成其他内容。