Re: [NTG-context] luatex and xml
Thanks Wolfgang for your time and the attachments you send me. I don't want to sound ungrateful for the hard work and for the nice module you send me, but I was looking for another solution where I don't have to use Context macro's and setups. I want to use a little bit of lua code to get to the data I want. I think I will have greater control independent of the xml macro's (to be honest I find them difficult to understand). The solution I am looking for, is to use the function xml.filter (defined in l-xml.lua) and to assign the outcome to local variables. Kind regards Wim Hi, take a look into invoice.tex in my attachment. Wolfgang On Sun, 18 May 2008 02:20:00 +0200 WN [EMAIL PROTECTED] wrote: Hi, I am trying to parse a xml file with mkiv to process a list of invoices (factuur in dutch). The xml file looks like this ?xml version='1.0 standalone='yes' ? factuur nummer123456789/nummer datum1 januari 2008/datum medewerker/medewerker regels omschrijvingOmschrijving geleverde dienst a/omschrijving bedrag1500,00/bedrag omschrijvingOmschrijving geleverde dienst b/omschrijving bedrag200,00/bedrag /regels /factuur I want to extract and sum the invoices (regels). I managed to get things working (printing) but don't know how to assign these values into lua variables for the summing. The test code looks like this % engine=luatex \starttext \startluacode document.xml = document.xml or { } -- define namespace document.xml = xml.load(factuur.xml) -- load the file n = xml.count(document.xml, /factuur/regels/omschrijving) for i = 1, n do -- -- here I want to assign the values returned by xml.filter into local variable amount -- xml.sprint(xml.filter(document.xml, /factuur/regels/bedrag/position( .. i .. ) )) end \stopluacode \stoptext Kind regards WN ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___ ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___ ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___
Re: [NTG-context] luatex and xml
WN wrote: Hi, I am trying to parse a xml file with mkiv to process a list of invoices (factuur in dutch). please wikify the following solution ... % engine=luatex \startbuffer[whatever] ?xml version='1.0 standalone='yes' ? factuur nummer123456789/nummer datum1 januari 2008/datum medewerkerwhoever/medewerker regels omschrijvingOmschrijving geleverde dienst a/omschrijvingbedrag1500,00/bedrag omschrijvingOmschrijving geleverde dienst b/omschrijvingbedrag200,00/bedrag /regels /factuur \stopbuffer \startxmlsetups xml:invoice \xmlsetsetup{main}{factuur}{xml:*} \stopxmlsetups \xmlregistersetup{xml:invoice} \startluacode document.user = document.user or {} function document.user.sum(root) root = lxml.id(root) local sum = 0 for r, d, k in xml.elements(root,regels/bedrag) do local data = xml.content(d[k]) data = data:gsub(,,.) sum = sum + tonumber(data) end local result = string.format(%0.2f,sum) result = result:gsub(%.,,) tex.write(result) end \stopluacode \startxmlsetups xml:factuur ... \ctxlua{document.user.sum(#1)} ... \stopxmlsetups \starttext \xmlprocessbuffer{main}{whatever}{} \stoptext - Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl - ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___
[NTG-context] luatex and xml
Hi, I am trying to parse a xml file with mkiv to process a list of invoices (factuur in dutch). The xml file looks like this ?xml version='1.0 standalone='yes' ? factuur nummer123456789/nummer datum1 januari 2008/datum medewerker/medewerker regels omschrijvingOmschrijving geleverde dienst a/omschrijving bedrag1500,00/bedrag omschrijvingOmschrijving geleverde dienst b/omschrijving bedrag200,00/bedrag /regels /factuur I want to extract and sum the invoices (regels). I managed to get things working (printing) but don't know how to assign these values into lua variables for the summing. The test code looks like this % engine=luatex \starttext \startluacode document.xml = document.xml or { } -- define namespace document.xml = xml.load(factuur.xml) -- load the file n = xml.count(document.xml, /factuur/regels/omschrijving) for i = 1, n do -- -- here I want to assign the values returned by xml.filter into local variable amount -- xml.sprint(xml.filter(document.xml, /factuur/regels/bedrag/position( .. i .. ) )) end \stopluacode \stoptext Kind regards WN ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___