2013-10-07 132 views
0

我正在尝试做一些转换。到目前为止,所有内容都看起来正确,但XSLT无法获得其中一个节点(@Curl)的值,而另一个节点(@Name)的值正确。 继承人是XSLT:XSLT属性问题

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl" 
> 
    <xsl:output method="xml" indent="yes"/> 
    <xsl:template match="/"> 
    <xsl:for-each select="Menu/Category"> 
     <h3> 
     <i class="icon-cube"></i> 
     <xsl:value-of select="MainCategory/@Name"/> 
     </h3> 
     <ul class="listview fluid"> 
     <xsl:for-each select="MainCategory/SubCategory"> 
      <li> 
      <xsl:element name="a"> 
       <xsl:attribute name="href"> 
       <xsl:value-of select="@CUrl"/> 
       </xsl:attribute> 
       <xsl:value-of select="@Name"/> 
      </xsl:element> 
      </li> 
     </xsl:for-each> 
     </ul> 
    </xsl:for-each> 
    </xsl:template> 
</xsl:stylesheet> 

和XML是在这里:

<?xml version="1.0" encoding="utf-8"?> 
<Menu> 
    <Category> 
    <MainCategory Name="Транспорт"></MainCategory> 
    </Category> 
    <Category> 
    <MainCategory Name="Недвижимость"> 
     <SubCategory CURL="http://shop.bubaport.ru/category/1" Name="Продажа"></SubCategory> 
     <SubCategory CURL="http://shop.bubaport.ru/category/2" Name="Покупка"></SubCategory> 
     <SubCategory CURL="http://shop.bubaport.ru/category/3" Name="Аренда"></SubCategory> 
    </MainCategory> 
    </Category> 

回答

3

属性名称是区分大小写的。在你的XML,您有:

<SubCategory CURL="http://shop.bubaport.ru/category/1" Name="Продажа"> 

但在你的XSL,你写道:

<xsl:value-of select="@CUrl"/> 

尝试改变,为:

<xsl:value-of select="@CURL"/> 
+0

所以干脆。是的,它工作。 –

0

XML是区分大小写的。 XSL中提到的属性名称与XML不匹配。尝试下面的行。

<xsl:value-of select="@CURL"/> 

问候,