Re: [NTG-context] luatex and xml

2008-05-18 Thread WN
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

2008-05-18 Thread Hans Hagen
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

2008-05-17 Thread WN
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
___