Diviser la valeur du nœud avec XPath
Est-il une sorte de split()
fonction XPath?
Dire que j'ai ce XML:
<root>
<path>C:\folder\filename</path>
</root>
Et je veux récupérer filename
, comment puis-je faire cela? Je sais que je peux obtenir la valeur du nœud comme ceci:
//path/text()
Comment puis-je obtenir seulement le nom de fichier? (Je sais que c'est un concat()
de la fonction, de sorte que peut-être il ya un split()
fonction?)
Bonne question, +1. Outre les bonnes réponses que vous avez, voir ma réponse pour les deux autres solutions possibles.
OriginalL'auteur Rise_against | 2010-11-23
Vous devez vous connecter pour publier un commentaire.
Si vous avez un xpath-compatible 2.0 de l'API, vous pouvez résoudre ce problème de deux façons:
remplacer technique
Essayez d'utiliser:
par exemple
marquer technique
Vous peuvent obtenir un certain kilométrage à partir de marquer:
par exemple (merci à Martin)
http://www.w3schools.com/Xpath/xpath_functions.asp#string
tokenize(/root/path, '\\')[last()]
permet cela, mais il est à noter que de remplacer et de marquer sont XPath 2.0 et ne sont pas disponibles dans XPath 1.0 si vous avez besoin d'un XPath 2.0 mise en œuvre comme Saxon 9 (saxon.sourceforge.net).Merci, je n'arrivais pas à travailler si appliqué à généré dynamiquement des collections.
OriginalL'auteur Alex Brown
Alors que je voudrais utiliser:
il y a également de nombreuses autres façons d'obtenir de la chaîne souhaitée:
Ou:
OriginalL'auteur Dimitre Novatchev