在XML到HTML XSL转换中显示链接
我正在通过XSL将一些XML转换成HTML,但在显示链接时遇到了一些问题。XML如下所示:在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
<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。当然,您需要更多的模板来从其他节点生成其他内容。