Dato il seguente codice XML:Esecuzione di un "gruppo da" query in XPath XSL
<results name="queryResults">
<int name="intfield1:[* TO 10]">11</int>
<int name="intfield2:[10 TO 20]">9</int>
<int name="intfield1:[10 TO 20]">12</int>
</results>
Vorrei produrre questo XML:
<results>
<field name="numberfield1">
<value name="[* TO 10]">11</value>
<value name="[10 TO 10]">12</value>
</field>
<field name="numberfield2">
<value name="[10 TO 20]">9</value>
</field>
</results>
non riesco a pensare come fare questo in XSL soprattutto perché sto volendo gruppo per la numbericfield .. Tutto quello che posso venire in mente è questa:
<xsl:if test="count(results/int) > 0">
<results>
<xsl:for-each select="results/int">
<field>
<xsl:attribute name="name">
<xsl:value-of select="substring-before(@name, ':')"/></xsl:attribute>
<value>
<xsl:attribute name="name">
<xsl:value-of select="substring-after(@name, ':') "/>
</xsl:attribute>
<xsl:value-of select="."/>
</value>
</field>
</xsl:for-each>
</results>
</xsl:if>
Tuttavia, questo non produce il bel gruppo Lista Ed invece ottengo questo:
<results>
<field name="numberfield1">
<value name="[* TO 10]">11</value>
</field>
<field name="numberfield2">
<value name="[10 TO 20]">9</value>
</field>
<field name="numberfield1">
<value name="[10 TO 10]">12</value>
</field>
</results>
Se qualcuno mi può Stear nella giusta direzione .. Che sarebbe fantastico?
Grazie
È l'uomo .. evviva .. appena provato e funziona a meraviglia. Dovrò cercare questa cosa del "gruppo di meunchian" visto che al momento sembra tutto voodoo – CraftyFella
Una domanda ... C'è un modo per limitare i campi int che crea .. come c'è un'altra lista di int's else dove e sta portando quelli nella chiave intfield? Spero che abbia senso – CraftyFella
Sì, nell'attributo 'match' di xsl: key puoi inserire qualsiasi espressione completa di Xpath per essere più preciso su quali nodi richiedi. Ad esempio –