2010-10-22 4 views
0

Mon xml ressemblelongueur de la chaîne à trouver la longueur du nœud répétitif

<details> 
    <addr> 
     <streetAddressLine>90822 abc lane</streetAddressLine> 
     <streetAddressLine>apt b</streetAddressLine> 
     <!-- streetAddressLine element is repeatable --> 
     <state>xyz</state> 
    </addr> 
</details> 

Je cherche l'expression XPath qui peut me donner la longueur de chaîne de longueur (streetAddressLine [0]) + chaîne de longueur (streetAddressLine [1]) + ..... + string-length (streetAddressLine [n])

+0

@ solution de Alejandro est beaucoup mieux que celui que vous avez accepté. Vous pouvez reconsidérer et décider d'accepter la meilleure solution. –

Répondre

1
string-length(string-join(/details/addr/streetAddressLine/text(),"")) 
1

maintenant que nous savons que vous voulez une solution XPath 2.0, cette expression:

sum(/details/addr/streetAddressLine/string-length()) 

Résultat:

19 

Pour une solution XSLT 1.0, cette feuille de style:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:template match="/"> 
    <xsl:variable name="vStreetAddressLines"> 
    <xsl:copy-of select="/details/addr/streetAddressLine"/> 
    </xsl:variable> 
    <xsl:value-of select="string-length($vStreetAddressLines)"/> 
</xsl:template> 
</xsl:stylesheet> 

Sortie:

19 
+0

Bonne réponse, +1. Je pense que dans XPath 2.0, vous devez spécifier 'string-length (.)', Pas seulement 'string-length()' –

Questions connexes