微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.net – XSLT有一个Split()函数吗?

我有一个字符串在一个节点,我想拆分上的字符串’?并返回数组中的最后一项。

例如,在下面的块中:

<a>
    <xsl:attribute name="href">
        /newpage.aspx?<xsl:value-of select="someNode"/>
    </xsl:attribute>
    Link text
</a>

我想拆分someNode值。

编辑:
这里是VB.Net,我用来加载Xsl为我的Asp.Net页面

Dim xslDocPath As String = HttpContext.Current.Server.MapPath("~/App_Data/someXslt.xsl")
Dim myXsltSettings As New XsltSettings()
Dim myXMLResolver As New XmlUrlResolver()

myXsltSettings.EnableScript = True
myXsltSettings.EnableDocumentFunction = True

myXslDoc = New xslcompiledtransform(False)
myXslDoc.Load(xslDocPath,myXsltSettings,myXMLResolver)

Dim myStringBuilder As New StringBuilder()
Dim myXmlWriter As XmlWriter = nothing

Dim myXmlWriterSettings As New XmlWriterSettings()
myXmlWriterSettings.ConformanceLevel = ConformanceLevel.Auto
myXmlWriterSettings.Indent = True
myXmlWriterSettings.OmitXmlDeclaration = True

myXmlWriter = XmlWriter.Create(myStringBuilder,myXmlWriterSettings)

myXslDoc.Transform(xmlDoc,argumentList,myXmlWriter)

Return myStringBuilder.ToString()

更新:这里是an example of splitting XML on a particular node

使用递归方法
<xsl:template name="output-tokens">
    <xsl:param name="list" /> 
    <xsl:variable name="newlist" select="concat(normalize-space($list),' ')" /> 
    <xsl:variable name="first" select="substring-before($newlist,' ')" /> 
    <xsl:variable name="remaining" select="substring-after($newlist,' ')" /> 
    <id>
        <xsl:value-of select="$first" /> 
    </id>
    <xsl:if test="$remaining">
        <xsl:call-template name="output-tokens">
            <xsl:with-param name="list" select="$remaining" /> 
        </xsl:call-template>
    </xsl:if>
</xsl:template>

原文地址:https://www.jb51.cc/vb/256417.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐