XML / XSLT - 将静态标签更改为动态标签

时间:2014-08-13 16:40:17

标签: xml xslt content-management-system

我使用CMS生成的XML在使用XSLT的页面上呈现HTML内容。

基本上,我需要更改下面的代码行,以便"查询范围"不再对页面进行硬编码,而是将其替换为用户在CMS中键入的任何链接名称。

<a href="{Page[@Name='AreasofInquiryLink']/@URL}">
  <strong>Areas of Inquiry Courses</strong>
</a>:&#160;

以下是CMS生成的XML:

<TaxonomyNavigation 
    StartNodes="2299|2300|2297|2296|2298|2295" 
    Depth="0" 
    IncludePages="true" 
    Name="AreasofInquiry" 
    label="Areas of Inquiry">

这是完整的XSLT代码块:

<xsl:template match="RequirementsTabComponent">
    <xsl:if test="TaxonomyNavigation[@Name='AreasofInquiry']//Category">
      <p>
        <a href="{Page[@Name='AreasofInquiryLink']/@URL}"><strong>Areas of Inquiry Courses</strong></a>:&#160;
      </p>
    </xsl:if>
    <xsl:value-of select="AreasofInquiry" disable-output-escaping="yes"/>
</xsl:template>

我将非常感谢您对我如何做到这一点的任何帮助。

1 个答案:

答案 0 :(得分:0)

如果它只是您需要的label上的TaxonomyNavigation属性,那么您要查找的表达式是

<xsl:value-of select="TaxonomyNavigation[@Name='AreasofInquiry']/@Label" />

要将其置于上下文中,这就是xslt模板的样子:

<xsl:template match="RequirementsTabComponent">
    <xsl:if test="TaxonomyNavigation[@Name='AreasofInquiry']//Category">
      <p>
        <a href="{Page[@Name='AreasofInquiryLink']/@URL}">
            <strong>
                <xsl:value-of select="TaxonomyNavigation[@Name='AreasofInquiry']/@Label" /> 
            </strong>
        </a>
      </p>
    </xsl:if>
    <xsl:value-of select="AreasofInquiry" disable-output-escaping="yes"/>
</xsl:template>