[C#] xml laatste node

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Woef
  • Registratie: Juni 2000
  • Niet online
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<CDC>
 <CALL_12345>
  <POSTAL>9999 XX</POSTAL>
  <TEL>06123456789</TEL>
</CALL_12345>
<CALL_12346>
  <POSTAL>5555 BB</POSTAL>
  <TEL>06987654321</TEL>
</CALL_12346>
<CALL_12347>
  <POSTAL>1111 AZ</POSTAL>
  <TEL>06543216789</TEL>
</CALL_12347>
</CDC>


Graag wil ik uit een XML-bestand gegevens uit de onderste node pakken.
In dit geval wil ik dus CDC->CALL->CALL_12347->TEL.

Helaas kan ik de juiste functie niet vinden. Heb de hele MSDN site al ondersteboven gehad ;). Ik gebruikte eerst SelectSingleNode maar dan krijg ik niet de laatste te pakken.

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
En wat heb je allemaal al geprobeerd? Een XmlNode heeft gewoon een Children property waar je door alle children heen kunt lopen. Dan is het niet zo'n grote moeite om daar de laatste van de pakken neem ik aan.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Woef
  • Registratie: Juni 2000
  • Niet online
Woy schreef op vrijdag 04 september 2009 @ 12:00:
En wat heb je allemaal al geprobeerd? Een XmlNode heeft gewoon een Children property waar je door alle children heen kunt lopen. Dan is het niet zo'n grote moeite om daar de laatste van de pakken neem ik aan.
Lopen leek mij juist zo onlogisch, dat je een hele loop moet doen om bij de laatste te komen.
Te meer het XML-bestand met de dag groter wordt.

Acties:
  • 0 Henk 'm!

Verwijderd

4de hit op Google: http://www.csharp-examples.net/xml-nodes-by-name/
Hier moet je vast verder mee komen...

Acties:
  • 0 Henk 'm!

  • jmzeeman
  • Registratie: April 2007
  • Laatst online: 12-09 16:17
Woef schreef op vrijdag 04 september 2009 @ 12:03:
[...]

Lopen leek mij juist zo onlogisch, dat je een hele loop moet doen om bij de laatste te komen.
Te meer het XML-bestand met de dag groter wordt.
Wat voor (standaard) functie je ook gebruikt er wordt toch altijd het hele bestand geparsed, dat je dan nog even door een paar nodes heen moet lopen is dan niet zo'n punt meer.

Wat je het makkelijkst kan doen is SelectSingleNode op 'CDC' daarna roep je van die node de LastChild method aan, daar kan je dan weer SelectSingleNode op aan roepen om TEL te krijgen.

Zit er in xpath trouwens geen last() functie? Dan kan je natuurlijk gewoon selectsinglenode met als xpath: "CDC/*[last()]/TEL" doen.

Acties:
  • 0 Henk 'm!

  • Woef
  • Registratie: Juni 2000
  • Niet online
Bedankt. Heb het nu zo opgelost.
De last() functie van XPath gin niet helemaal lekker bij mij.
XML:
1
2
XmlNode lastNode = xd.DocumentElement.LastChild;
lastNode.ChildNodes.Item(1).ChildNodes.Item(0).Value

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
XPath voor laatste node willekeurig bestand:
code:
1
(//*)[last()]

Let op de haakjes. :)

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • sorted.bits
  • Registratie: Januari 2000
  • Laatst online: 19:30
Vind niemand het gek dat hij een elementnaam gebruikt met een ophogend nummer? Waarom maak je van dat nummer geen attribuut?

Dat maakt Xpath queries een stuk makkelijker. Maar goed, misschien krijg je het zo aangeleverd natuurlijk ;).

Acties:
  • 0 Henk 'm!

  • Woef
  • Registratie: Juni 2000
  • Niet online
sorted.bits schreef op vrijdag 04 september 2009 @ 13:49:
Vind niemand het gek dat hij een elementnaam gebruikt met een ophogend nummer? Waarom maak je van dat nummer geen attribuut?

Dat maakt Xpath queries een stuk makkelijker. Maar goed, misschien krijg je het zo aangeleverd natuurlijk ;).
Ja dat was in het begin ook mijn probleem. Maar op dat XML-bestand heb ik geen invloed.

Acties:
  • 0 Henk 'm!

  • sorted.bits
  • Registratie: Januari 2000
  • Laatst online: 19:30
Ah ok, gelukkig dan maar. Ben je er nog uit gekomen?
Pagina: 1