[XPath 1.0] Alternatief voor 'exists' functie*

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Jiggle
  • Registratie: December 2007
  • Laatst online: 22-03-2021
Hopelijk kan iemand mij helpen met dit probleempje.
Ik heb de volgende XML

XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    <A>
          <B>
            <Amount>5000</Amount>
            <Start>60</Start>
            <End>65</End>
          </B>
          <B>
            <Amount>3000</Amount>
            <Start>63</Start>
          </B>
      <B>
            <Amount>1234</Amount>
            <Start>61</Start>
            <End>67</End>
          </B>
        </A>



Ik wil nu graag twee rijen hebben waarin de drie begin- en eindleeftijden staan.
Ik krijg het echter niet voor elkaar om voor de eindleeftijd ook een rij van 3 elementen te krijgen. Nu heb ik dus een array start: (60;63;61) en een array end: (65;67).
Ik moet echter wel weten welke node B geen eindleeftijd heeft en welke wel.

Probleem hierbij is dat ik alleen de XPath 1.0 bibliotheek tot mijn beschikking heb. Dus ik kan volgens mij geen functie als 'exists' gebruiken.
Is het echter mogelijk om hier een alternatief voor in elkaar te knutselen? Met het detecteren van het aantal children ofzo?

Zou fijn zijn als iemand zou kunnen helpen!

[ Voor 0% gewijzigd door BtM909 op 16-05-2013 12:05 ]


Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Nou laat je XPath (xlst) dan ook zien? ;)

Kan je niet gewoon met if test="... en if test="not... werken?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • Corniel
  • Registratie: April 2002
  • Laatst online: 31-03 14:56

Corniel

De wereld is gek!

Weet niet wat je wilt doen maar je kan iets doen als dit:

XML:
1
2
3
4
5
6
7
8
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:apply-templates select="//B[Start or End]">
        <xsl:if test="Start">Do Start</xsl:if>
        <xsl:if test="not(Start)">Do geen Start</xsl:if>
        <xsl:if test="End">Do End</xsl:if>
        <xsl:if test="not(End)">Do geen End</xsl:if>
    </xsl:apply-templates>
</xsl:stylesheet>


Maar wat je wilt doen ligt heel erg wat je er vervolgens mee moet doen.

[ Voor 94% gewijzigd door Corniel op 16-05-2013 13:22 . Reden: zucht, toon voorbeeld is lastig. ]

while (me.Alive) {
me.KickAss();
}


Acties:
  • 0 Henk 'm!

Verwijderd

ik denk dat je er inderdaad kan geraken met de not-functie. Die zit in XPath 1.0: http://www.w3.org/TR/xpath/#function-not

En hier is nog een artikel die dezelfde problematiek behandeld zoals jij het beschrijft: http://www.bennadel.com/b...er-Node-In-ColdFusion.htm

[ Voor 0% gewijzigd door Verwijderd op 17-05-2013 10:28 . Reden: fix typo ]