使用XSLT进行transformin时链接出现问题

时间:2011-06-28 08:20:05

标签: xslt

当我使用XSLT从一个XHTML页面转换为新的XHTML页面时,我无法使菜单中的A标签起作用。有没有办法在转换时以某种方式获取链接的正确来源?提供一些帮助以及改进下面代码的提示。 Thansk! :)

<xsl:template match="/">
<ul>
<xsl:for-each select="//*[@id='mbSubMenu']/ul/li">
<li style="margin: 0; padding: 3px 0; border-bottom: 1px solid #ffffff;">
<blockquote style="margin: 0 0 0 5px; padding: 0">
 <a class="vanstermeny_underniva" href="{link}"><xsl:value-of select="."/></a>
</blockquote>
  </li>
</xsl:for-each>
</ul>
</xsl:template>

2 个答案:

答案 0 :(得分:0)

<a class="vanstermeny_underniva">
   <xsl:attribute name="href">
      <xsl:value-of select="."/>
   </xsl:attribute>
   <xsl:value-of select="."/>
</a>

试试这个。

答案 1 :(得分:0)

您需要更多细节,如其他地方所述。但显而易见的是,您应该使用push而不是pull来获取所有数据。谷歌'xslt推'并阅读此内容。这是一个简单的例子:

XML

<div>
<div id ="mbSubMenu">
  <ul>
    <li>
      <a href="#">Blah</a>
    </li>
  </ul>
</div>
  <div id="something">
    <a href="#">else</a>
  </div>
</div>

XSLT

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html" indent="yes"/>

  <xsl:template match="/">   
    <html>
      <xsl:apply-templates select="//div[@id = 'mbSubMenu']" />
    </html> 
  </xsl:template>

  <xsl:template match="li">
    <p>
      <xsl:apply-templates/>
    </p>
  </xsl:template>

    <xsl:template match="a">
    <xsl:copy-of select="."/>
  </xsl:template>

</xsl:stylesheet>