XmlDocumentfuncties
Met de XmlDocumentfuncties kunnen
gegevens uit XML (Extensible Markup Language) documenten gelezen worden.
Met
XmlGetFirstElement
kan het eerste element
van een reeks uit het XML document worden gelezen en
met XmlGetNextElement het volgende element.
Met XmlGetElement kunnen
individuele XML elementen uit het XML document worden gelezen.
XmlGetElement
XmlGetFirstElement
XmlGetNextElement
Voorbeeld:
{
String sXmlDoc, sOrder, sNaam, sContact, sContactNaam, sItems
String sItem,sNpc,sOmschr,sBesteld,sUitVrrd,sMaken,sStkPrys
Integer iCnt
Copy(sXmlDoc,
<root>
<Order>
<Id>12345</Id>
<Naam>Demo
BV</Naam>
<Adres>Voorbeeldstraat
1</Adres>
<PostCode>1234
AB</PostCode>
<Woonplaats>Demostad</Woonplaats>
<Telefoon>012-3456789</Telefoon>
<ContactPersoon>
<Naam>V.O.
Orbeeld</Naam>
<Email1>v.o.orbeeld@demobv.nl</Email1>
<TelNr>06-12345678</TelNr>
</ContactPersoon>
<AfleverAdres>
<Afdeling>Goederenontvangst</Afdeling>
<Adres1>Beeldweg
9</Adres1>
<PostCode>1234
AC</PostCode>
<Woonplaats>DemoStad</Woonplaats>
</AfleverAdres>
<Items>
<Item>
<Npc>Betaalmethode</Npc>
<Omschrijving>iDEAL</Omschrijving>
</Item>
<Item>
<Npc>Installatie</Npc>
<Besteld>1</Besteld>
<Maken>1</Maken>
<Omschrijving>Installatie
en Configuratie</Omschrijving>
<StkPrys>1500</StkPrys>
</Item>
<Item>
<Npc>320</Npc>
<Omschrijving>Enterprise
Webservices</Omschrijving>
<Besteld>1</Besteld>
<Eenh>Stuk</Eenh>
<APE>1</APE>
<UitVrrd>1</UitVrrd>
<StkPrys>1375</StkPrys>
</Item>
</Items>
</Order>
<Order>
<Id>98754</Id>
<Naam>Tester
BV</Naam>
<Adres>Onderzoeksstraat
1=7</Adres>
<PostCode>4321
AA</PostCode>
<Woonplaats>Testdorp</Woonplaats>
<Telefoon>098-765321</Telefoon>
<ContactPersoon>
<Naam>P.R
Obeer</Naam>
<Email1>p.r.orbeer@testerbv.nl</Email1>
<TelNr>06-8765321</TelNr>
</ContactPersoon>
<AfleverAdres>
<Afdeling>Inkoop</Afdeling>
<Adres1>Probeerweg
7</Adres1>
<PostCode>4321
BB</PostCode>
<Woonplaats>Testdorp</Woonplaats>
</AfleverAdres>
<Items>
<Item>
<Npc>Installatie</Npc>
<Besteld>1</Besteld>
<Maken>1</Maken>
<Omschrijving>Installatie
en Configuratie</Omschrijving>
<StkPrys>1500</StkPrys>
</Item>
<Item>
<Npc>223</Npc>
<Omschrijving>eTax
module voor automatische BTW en ICP aangifte.</Omschrijving>
<Besteld>1</Besteld>
<Eenh>Stuk</Eenh>
<APE>1</APE>
<UitVrrd>1</UitVrrd>
<StkPrys>475</StkPrys>
</Item>
<Item>
<Npc>330</Npc>
<Omschrijving>SBR
Verzendfaciliteit</Omschrijving>
<Besteld>1</Besteld>
<Eenh>Stuk</Eenh>
<APE>1</APE>
<UitVrrd>1</UitVrrd>
<StkPrys>300</StkPrys>
</Item>
</Items>
</Order>
</root>)
While XmlGetElement(Order,sXmlDoc,sOrder,iCnt)
XmlGetElement(Naam,sOrder,sNaam)
XmlGetElement(ContactPersoon,sOrder,sContact)
XmlGetElement(Naam,sContact,sContactNaam)
}
Naam: [sNaam] Contact: [sContactNaam]
{
Tt = 0
XmlGetElement(Items,sOrder,sItems)
If XmlGetFirstElement(Item,sItems,sItem)
}
Npc |
Omschrijving |
Besteld |
UitVrrd |
Maken |
StukPrys |
Totaal |
{
DoSub ShowItem
While XmlGetNextElement(Item,sItems,sItem)
DoSub ShowItem
Wend
}
{
Endif
iCnt = iCnt + 1
Wend
Subroutine ShowItem
XmlGetElement(Npc,sItem,sNpc)
XmlGetElement(Omschrijving,sItem,sOmschr)
XmlGetElement(Besteld,sItem,sBesteld)
XmlGetElement(UitVrrd,sItem,sUitVrrd)
XmlGetElement(Maken,sItem,sMaken)
XmlGetElement(StkPrys,sItem,sStkPrys)
Aantal = [sUitVrrd] + [sMaken]
If Aantal>[sBesteld]
Aant = [sBesteld]
Endif
Totaal = Aantal*[sStkPrys]
}
[sNpc] |
[sOmschr] |
[sBesteld] |
[sUitVrrd] |
[sMaken] |
[sStkPrys] |
[Totaal] |
{
Tt = Tt +Totaal
EndSub
}
Resultaat:
Naam: Demo BV Contact: V.O. Orbeeld
Npc |
Omschrijving |
Besteld |
UitVrrd |
Maken |
StukPrys |
Totaal |
Betaalmethode |
iDEAL |
|
|
|
|
0,00 |
Installatie |
Installatie en Configuratie |
1 |
|
1 |
1500 |
1.500,00 |
320 |
Enterprise Webservices |
1 |
1 |
|
1375 |
1.375,00 |
|
|
|
|
|
Totaal |
2.875,00 |
Naam: Tester BV Contact: P.R Obeer
Npc |
Omschrijving |
Besteld |
UitVrrd |
Maken |
StukPrys |
Totaal |
Installatie |
Installatie en Configuratie |
1 |
|
1 |
1500 |
1.500,00 |
223 |
eTax
module voor automatische BTW en ICP aangifte. |
1 |
1 |
|
475 |
475,00 |
330 |
SBR
Verzendfaciliteit |
1 |
1 |
|
300 |
300,00 |
|
|
|
|
|
Totaal |
2.275,00 |