X-path functie String voor Tabel

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Jiggle
  • Registratie: December 2007
  • Laatst online: 22-03-2021
Ik heb een vraagje waarvan ik hoop dat hij heel erg makkelijk is:

De functie String geeft de string-waarde van een object als het gevuld is, en een lege string als het niet gevuld is. Als het object een array is, dan neemt de functie het eerste element daarvan. Is er ook een functie die hetzelfde doet, maar dan voor alle elementen van een array?

Doel van mijn vraag is dat ik in X-path (geen 2.0) mbv de functie string een soort van if-function gebruik, maar dat deze niet werkt voor arrays. Wil daarvoor dus een nieuwe functie gaan maken.
Huidige if-functie is:
concat( substring(string(waarde1), 1, number(boolean(string(waarde1)))*string-length(string(waarde1))),substring(string(waarde2), 1, number(not(boolean(string(waarde1))))*string-length(string(waarde2))))

Thanks alvast!

Acties:
  • 0 Henk 'm!

  • Pkunk
  • Registratie: December 2003
  • Laatst online: 11-09 17:52
Jiggle schreef op vrijdag 13 maart 2009 @ 11:24:
Ik heb een vraagje waarvan ik hoop dat hij heel erg makkelijk is:

De functie String geeft de string-waarde van een object als het gevuld is, en een lege string als het niet gevuld is. Als het object een array is, dan neemt de functie het eerste element daarvan. Is er ook een functie die hetzelfde doet, maar dan voor alle elementen van een array?
Gaat dit over javascript ofzo?
Doel van mijn vraag is dat ik in X-path (geen 2.0) mbv de functie string een soort van if-function gebruik, maar dat deze niet werkt voor arrays. Wil daarvoor dus een nieuwe functie gaan maken.
Huidige if-functie is:
concat( substring(string(waarde1), 1, number(boolean(string(waarde1)))*string-length(string(waarde1))),substring(string(waarde2), 1, number(not(boolean(string(waarde1))))*string-length(string(waarde2))))
en dit is weer xslt...
nofi, maar het extreem onleesbaar. Kan je uitleggen wat je wil bereiken? En heb je een voorbeeld van wat er uit zou moeten komen?

Hallo met Tim


Acties:
  • 0 Henk 'm!

  • André
  • Registratie: Maart 2002
  • Laatst online: 13:47

André

Analytics dude

Het is inderdaag erg onduidelijk, ik snap totaal niet wat je wil?

Acties:
  • 0 Henk 'm!

  • Jiggle
  • Registratie: December 2007
  • Laatst online: 22-03-2021
Sorry voor de onduidelijkheid, ben bepaald geen expert hierin.
Ik wil uit een xml-database iets uitlezen via een Xpath-query.

Stel ik heb deze XML:

<groep1><A428>29-12-2003</A428></groep>

Met de XPath-functie String(\\groep1\A428) krijg ik dan als output een string "29-12-2003"

Stel ik heb de XML:

<groep1><A428 /></groep1>

Dan krijg ik met dezelfde Xpath-query String(\\groep1\A428) als output een lege string.

Maar de situatie is nu als volgt:
Ik heb de XML:

<groep1><A428>29-12-2003</A428></groep1>
<groep1><A428 /></groep5>

Ik zou nu graag willen dat de functie Sting me een tabel opleverde met twee elementen, waarvan het eerste element "29-12-2003" is, en het tweede element een leeg veld.
Maar de functie String retourneert alleen het eerste element als string, dus mijn output is een enkel veld met "29-12-2003". Mijn vraag is dus of er een alternatief is voor deze functie die wel een tabel als input en output kan hebben.

Heb ik het zo genoeg verduidelijkt?!

Acties:
  • 0 Henk 'm!

  • Pkunk
  • Registratie: December 2003
  • Laatst online: 11-09 17:52
Wat gebruik je om die xpath uit te voeren? Want dit kan allemaal heel makkelijk met xslt

bijvoorbeeld:
XML:
1
2
3
4
5
6
7
8
9
10
<table>
  <xsl:apply-templates select="*" mode="groep"/>
</table>

<xsl:template match="*" mode="groep">
  <tr>
    <td><xsl:value-of select="name()"/></td>
    <td><xsl:value-of select="*[1]"/></td>
  </tr>
</xsl:template>

Wat dat doet is voor elke groep(*) een rij tekenen en daarin de naam van die rij weergeven(name()) en de waarde van het eerste element(*[1]).

Maar eigenlijk zou je hiervoor je xml iets anders willen opzetten :)

[ Voor 117% gewijzigd door Pkunk op 13-03-2009 17:26 ]

Hallo met Tim


Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Jiggle schreef op vrijdag 13 maart 2009 @ 15:37:
Ik heb de XML:

<groep1><A428>29-12-2003</A428></groep1>
<groep1><A428 /></groep5>
Ik neem aan dat die 5 een 1 moet zijn.
Ik zou nu graag willen dat de functie Sting me een tabel opleverde met twee elementen, waarvan het eerste element "29-12-2003" is, en het tweede element een leeg veld.
Niet de functie St(r)ing gebruiken, maar gewoon node() of text(), dus iets als
code:
1
//groep1/A428/text()

?

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten

Pagina: 1