Toon posts:

[Xpath / XSL] Zoeken met wildcards door XML?

Pagina: 1
Acties:
  • 106 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Als ik door een XML file wil zoeken zoals ik dat zou doen in een database mbv. SQL, hoe pak ik dat aan? Met SQL is het makkelijk natuurlijk, gewoon "like" en "%" gebruiken, en je kunt met bepaalde keywords een goede zoek-selectie maken.

code:
1
2
3
select naam, omschrijving from tblProducts 
    where naam like '%blabla%' 
    order by datum asc


Maar nu wil ik dit met Xpath oplossen. Ik heb een zoek formulier in XSL gemaakt die een bepaalde XML file moet doorzoeken. Vooralsnog gebruik ik een selectie waarbij de gezochte naam perfect overeen moet komen met

code:
1
//products[@naam = $naam or description = $description]


Maar ik wil eigenlijk zoiets als dit:

code:
1
//products[@naam like %$naam% or description like %$description%]


En mijn documentatie zegt hier niks over... voor zover ik weet ;)


P.S. Ik ga liever geen serverside taal schrijven hiervoor, het moet zoveel mogelijk via XSL werken, tenzij er geen andere oplossing is natuurlijk.

  • JohanDM
  • Registratie: Augustus 2002
  • Laatst online: 16-07-2021

JohanDM

Optimist

Je zou kunnen gebruik maken van de contains() functie:
code:
1
//products[contains(@naam, $naam) or contains(description, $description)]

Deze functie kijkt na of de tweede string in de eerste voorkomt.

[ Voor 19% gewijzigd door JohanDM op 17-09-2003 14:43 ]

"Two things are infinite: the universe and stupidity. And the former I'm not so sure about." -- Albert Einstein


Verwijderd

maar is het slim om door een xml document heen te willen zoeken?

Ik blijf er altijd bij dat

1) Je de data opslaat in een database,
2) Je de data selecteert dmv SQL,
3) Je de data transporteert via XML,
4) Je de data vormgeeft dmv XSL,
5) Je de data laat zien via XHTML.

Oke, nou kan het zijn dat je een hostert heb die geen database voor je wil draaien, of anderszins geen database kan draaien.

Kun je in dat geval iets zeggen over de snelheid van een XML Query tov een SQL query.
Ik weet dat het laatste sneller is, maar hoeveel sneller. Als het enige procenten betreft en je hoeft maar te zoeken door 20 - 30 records / nodes dan maakt het natuurlijk geen flikker uit.

Verwijderd

Topicstarter
Verwijderd schreef op 17 September 2003 @ 14:48:
maar is het slim om door een xml document heen te willen zoeken?

Ik blijf er altijd bij dat

1) Je de data opslaat in een database,
2) Je de data selecteert dmv SQL,
3) Je de data transporteert via XML,
4) Je de data vormgeeft dmv XSL,
5) Je de data laat zien via XHTML.

Oke, nou kan het zijn dat je een hostert heb die geen database voor je wil draaien, of anderszins geen database kan draaien.

Kun je in dat geval iets zeggen over de snelheid van een XML Query tov een SQL query.
Ik weet dat het laatste sneller is, maar hoeveel sneller. Als het enige procenten betreft en je hoeft maar te zoeken door 20 - 30 records / nodes dan maakt het natuurlijk geen flikker uit.
Het is maar weinig data, dus dat maakt in dit geval niet uit. Maar je hebt wel gelijk, data moet in een database. Op het moment werken we met XML zonder database... helaas... omdat dit een verouderde versie is van een content management systeem.

De nieuwe versie werkt inmiddels wel op een database :)

JohanDM - Bedankt! Ik ga dat zo proberen.