我在节点中有一个字符串,我想将字符串拆分为'?' 并返回数组中的最后一项.
例如,在下面的块中:
<a>
<xsl:attribute name="href">
/newpage.aspx?<xsl:value-of select="someNode"/>
</xsl:attribute>
Link text
</a>
Run Code Online (Sandbox Code Playgroud)
我想分割someNode价值.
编辑:这是我用来为我的Asp.Net页面加载Xsl的VB.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()
Run Code Online (Sandbox Code Playgroud)
更新: …
我想将分号(;)上的地址拆分为由<br />以下各项分隔的行:
例如if address= 123 Elm Street,我想输出123 Elm Street,
但如果address= 123 Elm Street;PO Box 222,我想输出
123 Elm Street<br />PO Box 222
Run Code Online (Sandbox Code Playgroud)
如果address= 123 Elm Street;PO Box 222;c/o James Jones,我想输出
123 Elm Street<br />PO Box 222<br />c/o James Jones
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?(可能很简单,但我不熟悉XSLT)
普通的XSL选择器是
<xsl:value-of select="address"/>
Run Code Online (Sandbox Code Playgroud)
我想修改这个XSLT片段以分号分割.
更新:显然,答案涉及使用<xsl:call-template>和功能substring-before()和substring-after().
但我是XSLT的初学者,我真的可以使用一些帮助来解决这个问题.