如何使用锚标记(.xslt)在url中传递childname和parentid

时间:2016-07-28 15:11:15

标签: asp.net-mvc xslt

这是我的.xml代码:

<?xml version="1.0" encoding="utf-8"?>
<BlogCategories>
  <BlogCategory ID="1" ParentID="0" Name="Travel" Active="1" seo_keywords="Travel Blogs" seo_description="Travel Blogs" ParentName=""/>
  <BlogCategory ID="2" ParentID="0" Name="HealthCare" Active="1" seo_keywords="HealthCare  Blogs" seo_description="HealthCare  Blogs" ParentName=""/>
<BlogCategory ID="13" ParentID="1" Name="Destinations" Active="1" seo_keywords="Destinations" seo_description="Destinations" ParentName="Travel"/>
  <BlogCategory ID="14" ParentID="1" Name="Stories " Active="1" seo_keywords="Stories " seo_description="Stories " ParentName="Travel"/>
  <Parent Id="1" ParentName="Travel"/>
    <Parent Id="2" ParentName="HealthCare"/>
</BlogCategories>

这是我的.xslt代码:

<xsl:for-each select="Parent">
               <div class="grid-col-3">
                 <ul>
                   <h4><a href="ParentName/Id">
                     <xsl:value-of select="@ParentName"></xsl:value-of>
                   </a></h4>
                   <xsl:for-each select="/BlogCategories/BlogCategory[@ParentID = current()/@Id]">
                     <!--<xsl:if test="@ParentID=$Id">-->
                     <li class="lis">
                       <a href="">
                         <xsl:value-of select="@Name"></xsl:value-of>
                       </a>
                     </li>
                     <!--</xsl:if>-->
                   </xsl:for-each>
                 </ul>
               </div>
             </xsl:for-each>

我想在href中发送网址&lt; h4><a href="ParentName/Id"> 示例:假设我点击医疗保健,那么网址必须是.../healthcare/1

就像 如果我点击目的地,那么网址就像.../Destinations/13

2 个答案:

答案 0 :(得分:0)

我认为你正在寻找的语法就是这个......

<a href="{@ParentName}/{@Id}">

花括号称为Attribute Value Templates,表示要计算的表达式,而不是字面输出。因此,{@ParentName}将替换为ParentName属性的值,类似于{@Id}

你有<a href="">你可能需要这个

<a href="../{@Name}/{@ID}">

顺便说一句,请注意XML和XSLT区分大小写,因此IdID不同。

答案 1 :(得分:0)

您可以像这样使用1This is 1! -This is 2! --This is 4! 1--This is 5! ---This is 7! ----This is 8! 4-This is 3! --This is 6! 3This is 9! -This is 10! 1-This is 11! xsl:elementxsl:attribute

concat

<xsl:element name="a"> <xsl:attribute name="href"> <xsl:value-of select="concat(ParentName,'/',Id)"/>"/> </xsl:attribute> <xsl:value-of select="ParentName"/> </xsl:element> ParentName应该是xml代码中所选节点或所选属性的值。