split()
XPath中有某种功能吗?说我有这个XML:
<root>
<path>C:\folder\filename</path>
</root>
Run Code Online (Sandbox Code Playgroud)
我想要检索filename
,我该怎么做?我知道我可以得到这样的节点值:
//path/text()
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得文件名?(我知道有一个concat()
功能,所以也许有一个split()
功能?)
如果您有支持xpath-2.0的API,则可以通过两种方式解决此问题:
替换技术
尝试使用:
fn:replace(string,pattern,replace)
Run Code Online (Sandbox Code Playgroud)
例如
fn:replace(//path/text(),".*/","")
Run Code Online (Sandbox Code Playgroud)
标记化技术
您可以从tokenize获得一些里程:
fn:tokenize(string,pattern)
Run Code Online (Sandbox Code Playgroud)
例如(感谢Martin)
tokenize(/root/path, '\\')[last()]
Run Code Online (Sandbox Code Playgroud)
http://www.w3schools.com/Xpath/xpath_functions.asp#string