XML-DOM zoeken naar data

Pagina: 1
Acties:

  • BeachPatroller
  • Registratie: November 2002
  • Laatst online: 24-04-2024
Zijn er andere methodes dan m.b.v. selectNodes te zoeken naar data in een xml document.

Men kan bijv. op deze manier zoeken naar een xml-leaf 'naam' waarin zich ergens een string 'hp' bevindt.

Create bla bla
set blabla =
loadfile('bla.xml')
objDom.documentElement.selectNodes("//xmlroot//machines//machine[@naam='hp']")

Echter met bovenstaande techniek kunnen wanneer er zich wijzigingen plaatsvinden binnen de xml structuur fouten optreden.


stel dat we ervan uit kunnen gaan dat een nodenaam altijd machines heet, maar we weten niet waar deze zich in de boom bevindt, hoe kan ik dan het beste zoeken naar de node?

(dus niet met childnodes, deze is nl. ook boomdiepte afhankelijk).

Ik ben malle Pietje niet.


  • whoami
  • Registratie: December 2000
  • Nu online
Tja, dat er fouten gebeuren als de structuur van de XML wijzigt, daar kan je imo niet omheen.
Als je een SQL query hebt die werkt, en je past de structuur van je DB aan, dan kan het ook gebeuren dat die query niet meer werkt.
Kan je niet in die XPath query met wildcards oid werken, zodanig dat je gedeeltes van het pad kunt weglaten?
edit:
ja dus:
Selecting Unknown Elements
Wildcards ( * ) can be used to select unknown XML elements.

The following XPath expression selects all the child elements of all the cd elements of the catalog element:
code:
1
/catalog/cd/*


The following XPath expression selects all the price elements that are grandchild elements of the catalog element:
code:
1
/catalog/*/price
XPath tutorial

[ Voor 7% gewijzigd door whoami op 27-11-2003 16:25 ]

https://fgheysels.github.io/


  • BeachPatroller
  • Registratie: November 2002
  • Laatst online: 24-04-2024
Dank je wel voor je snelle reactie.

XPath was mij inderdaad ook wel een beetje bekend.

Maar als men een applicatie/ dyn. website bouwt die xml data importeert naar een database wil men toch een zo dynamisch mogelijke opzet.

Jammer dat deze feature er niet is. Het leek mij immers vanzelfsprekend dat deze niet zo erg ingewikkelde methode standaard in XML bestond. (Kijk hoever de diepste node is en ga recursief steeds een tak omhoog om te checken).

[ Voor 2% gewijzigd door BeachPatroller op 27-11-2003 16:35 . Reden: typo ]

Ik ben malle Pietje niet.


  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
tiens als je zoekt naar eender welke node ook doe je gewoon op de root:
code:
1
//machines/machine[criteria]


dt is dus zeggen voor alle machine met crit die ook nog eens machines al parent hebben in het hele document.

whoamu's * was goedbedoeld maar het onjuiste "wildcard".

let wel // zul je dus als //// moeten escapen..

euh snel is dat dus niet ;). beetje doen als een dir /s *.txt op je 80GB drive ;)

[ Voor 18% gewijzigd door hobbit_be op 27-11-2003 18:58 ]