XSL:将<div>放在<a></a> </div>中

时间:2013-06-12 08:43:14

标签: xslt-2.0

我正在尝试在<div />的XSL中放置<a />标记,但是在呈现网页时,它会将<a />置于<div />

被告知这是不可能的?

我正在尝试做的例子:

<a href="{URL}" title="{Name}">
   <div class="scope">
      <div>This is clickable content on the page</div>
   </div>
</a>

渲染时的输出:

<a href="/route" title="Welcome"></a>
<div class="scope">
   <div>This is clickable content on the page</div>
</div>

更新

模板:

   <xsl:template name="BlockAnchor" match="BlockAnchor">

    <a href="{URL}" title="{Name}">
           <div class="scope">
              <div>This is clickable content on the page</div>
           </div>
        </a>    

  </xsl:template> 

2 个答案:

答案 0 :(得分:0)

你可以试试这个

     <xsl:element name="a">
         <xsl:attribute name="href">
             <xsl:value-of select="URL" />
         </xsl:attribute>
         <xsl:attribute name="title">
             <xsl:value-of select="Name" />
         </xsl:attribute>
         <xsl:element name="div">
             <xsl:attribute name="class">
                 <xsl:text>scope</xsl:text>
             </xsl:attribute>
             <xsl:element name="div">
                 <xsl:text>This is clickable content on the page</xsl:text>
             </xsl:element>
         </xsl:element>
     </xsl:element>

它更冗长但它应该产生相同的输出。我只是随机猜测,因为你没有提供源xml示例和完整的xsl。

答案 1 :(得分:0)

这是HTML5正在运行。如果你给它的东西是无效的HTML,它会尝试修复它。您不能在<div>元素中包含<a>,因此HTML不会给您带来验证错误,而是变成类似的有效内容。在你接受的东西中,它被称为自由主义。