[xslt] aantal keer dat element voorkomt

Pagina: 1
Acties:

  • Juup
  • Registratie: Februari 2000
  • Niet online
Binnen een xml file die er ongeveer zo uitziet:
XML:
1
2
3
4
5
6
...
<node node_id="123" ... />
<node node_id="6"    root_id="123" ... />
<node node_id="2345" root_id="123" ... />
<node node_id="42"   root_id="123" ... />
...

met op de puntjes nog vanalles, wil ik graag weten hoevaak voor een gevonden node_id er bij andere nodes een root_id is met dezelfde waarde.
In dit geval zijn er dus 3 nodes wiens root_id wijst naar node_id 123.

Heeft iemand van jullie een idee hoe dat ongeveer zou moeten?

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Een paar componten die je nodig hebt:

// : op elke willekeurige diepte

Voorwaarde checken:

code:
1
node[@root_id = current()/@node_id]

Disclaimer: ff snel en al een tijdje geen XPath meer gedaan ;) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Juup
  • Registratie: Februari 2000
  • Niet online
Hmmm jouw methode geeft geen foutmelding ;) (dat is al vrij knap op zich)
Maar hij geeft helaas geen resultaat.
Dit werkt:
code:
1
2
3
4
5
6
7
8
9
10
<script>
var a = 0;
<xsl:for-each select="//NODE[@root_node]">
<xsl:variable name="rootnode" select="@root_node"/>
<xsl:if test="$nodeid = $rootnode">
a++;
</xsl:if>
</xsl:for-each>
if (a > 0) { document.write(a); }
</script>
Maar het is wel erg lelijk en omslachtig. Het gebruikt javascript om de waarde te incrementen ;)

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.


  • Juup
  • Registratie: Februari 2000
  • Niet online
Ik heb 'm!
code:
1
<xsl:value-of select="count(//NODE[@root_node = current()/@node_id])" />

Zeer elegant.

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Keurig :) . XPath is nog niet zo gek he? ;) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Juup
  • Registratie: Februari 2000
  • Niet online
XPath is cool. Bedankt voor de hulp.

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.

Pagina: 1