Comment faire pour trier les valeurs à l'aide de XPath
Ces est mon XML.
<root>
<element>
<title>Title .. </title>
<val>2</val>
<date>21/01/2011</date>
</element>
<element>
<title>Title .. </title>
<val>1</val>
<date>21/01/2011</date>
</element>
<element>
<title>Title .. </title>
<val>2</val>
<date>22/01/2011</date>
</element>
</root>
La logique est ceci:
Les nœuds d'élément doivent être classées en fonction de nœud de val et de la date. La première Commande doit être fondée sur val et à l'intérieur de cette séquence de nœuds avec la valeur val. Ils devraient être classés par date.
Quelqu'un sait-il comment obtenir une liste triée des nœuds XML via XPath?
Des idées?
Il semble que XPath lui-même ne prend pas en charge le tri: stackoverflow.com/questions/8480673/sort-with-xpath-not-xsl Pas sûr de savoir si cela est vrai pour les versions plus récentes de XPath.
OriginalL'auteur Harold SOTA | 2011-01-31
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
xsl:sort
pour trier les nœuds correspondants. Cela vous permettra de trier par votreval
élément. Cependant, XPath 1.0 n'ont pas de date de type de données. Une solution raisonnable à ce problemm est de fractionner votre date dans l'année, le mois et le jour de composants et de trier par chacun individuellement. Les points suivants devraient faire l'affaire:Il n'a pas de travail en raison que les nombres étaient aussi gros que nombre de jours 🙂 j'ai commencé à écrire de la sous-chaîne, mais vous l'avez déjà fait.
Si vous êtes en charge de la conception de XML (ou même si vous n'êtes pas...), il est toujours préférable de tenir les dates au format ISO AAAA-MM-JJ plutôt que sous la forme jj/mm/aaaa ou mm/jj/aaaa. Il évite toute ambiguïté pour le lecteur humain, et il est plus facile pour les logiciels de processus.
OriginalL'auteur ColinE
Il semble que XPath 3.1 offre de tri:
Signatures
https://www.w3.org/TR/xpath-functions-31/#func-sort
OriginalL'auteur j4n bur53