获取基于所有匹配内容xsl的值



我有以下xml:

        <main>
          <text>
           <naresh:parentText>
             <naresh:text type="anotheroption"></naresh:text>   
             <naresh:text type="MyCustom1"></naresh:text>
             <naresh:text type="MyCustom2"></naresh:text>
             <naresh:text type="MyCustom3"></naresh:text>
             <naresh:text type="MyCustom4"></naresh:text>
           </ns1:parentText>
        </text>
     </main>

我试图使用下面的xslt显示数据,但没有运气:

       <xsl:for-each select="main/text/naresh:parentText/naresh:text[starts-with(@type, 'MyCustom')]">  
          <xsl:call-template name="myTemplate"></xsl:call-template>
       </xsl:for-each>
      <xsl:template name = "myTemplate">    
        <xsl:value-of select="."  disable-output-escaping="yes"   />
     </xsl:template> 

有人能帮我吗?

谢谢,纳雷什。

试试这个,

XML:

<Text xmlns:naresh="www.my.web">
<naresh:parentText>
    <naresh:text type="anotheroption"></naresh:text>
    <naresh:text type="MyCustom1"></naresh:text>
    <naresh:text type="MyCustom2"></naresh:text>
    <naresh:text type="MyCustom3"></naresh:text>
    <naresh:text type="MyCustom4"></naresh:text>
</naresh:parentText>
</Text>

XSLT:

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:naresh="www.my.web">
<xsl:template match="Text">
    <xsl:for-each select="descendant::*[starts-with(@type, 'MyCustom')]">    
        <xsl:call-template name="myTemplate"></xsl:call-template>
    </xsl:for-each>
</xsl:template>
<xsl:template name = "myTemplate">
    <xsl:text>&#10;</xsl:text><xsl:value-of select="@type" disable-output-escaping="yes"/>
</xsl:template> 
</xsl:stylesheet>

结果:

<?xml version="1.0" encoding="UTF-8"?>
MyCustom1
MyCustom2
MyCustom3
MyCustom4

注意:在发布时,请放置简单完整的XSLT代码,包括样式表头或根以及所需的结果。

相关内容

  • 没有找到相关文章

最新更新