[NTG-context] xml input

Meer, Hans van der H.vanderMeer at uva.nl
Thu Apr 14 22:30:10 CEST 2016


On 14 Apr 2016, at 10:45, Hans Hagen <pragma at wxs.nl<mailto:pragma at wxs.nl>> wrote:

On 4/13/2016 4:21 PM, Meer, Hans van der wrote:
I would like to process several input sources as one xml tree. Like this:

<?xml version="1.0" encoding="UTF-8"?>
<takenotes>
<include buffer="notes-example"/>
<include file="notes-example.xml"/>
</takenotes>

with the sources having the structure
<notes>
<note>...</note>
...
</notes>

and the code for <takenotes> containing:
read from all sources given on <include>-notes
afterwards process all content at once

Thus the content of the various source should be read into one tree to
be processed, but I cannot get this done.
How to amalgam this separate sources into one?

a clue: \xmlinclude

By the way: hoe laad ik de inhoud van een buffer net als van een file, is er een buffer equivalent van \xmlinclude?

Hans, het spijt me zeer, maar ik begrijp er geen hout meer van want er volgt een crash met een lua-error.
Ik lees voor \xmlinclude dat \xmlinclude{NODE}{LPATH}{ATTRIBUTE} de file in het attribuut laadt.

Ik heb wat in de code rondgeneusd.
Uit  lxml            > tex > including file 'notes-example.xml'
in de log blijkt dat in function lxml.include(id,pattern,attribute,options)
moet zijn uitgevoerd

            if trace_loading then
                report_lxml("including file %a",filename)
            end
            noffiles, nofconverted = noffiles + 1, nofconverted + 1
            return resolvers.loadtexfile(filename) or ""

Met resolvers tracking komt hier nog tussen:
lxml            > tex > including file 'notes-example.xml'
resolvers       > methods > resolving, method 'finders', how 'uri', handler 'file', argument 'notes-example.xml'
resolvers       > resolving > remembering file 'notes-example.xml' using hash 'xml::notes-example.xml'
resolvers       > files > file finder: 'notes-example.xml' found
resolvers       > methods > resolving, method 'loaders', how 'uri', handler 'file', argument 'notes-example.xml'
resolvers       > files > file loader: 'notes-example.xml' loaded
het lijkt erop dat de gezochte file wel geladen is en dat pas daarna ConTeXt het opgeeft met de error.

De log geeft me hier:

HVDM-NOTE-DEBUG > enter notes:include
HVDM-NOTE-DEBUG > ..looking for file notes-example.xml
lxml            > tex > including file 'notes-example.xml'

lua error       > lua error on line 14 in file /Users/hansm/Documents/TeX/texmf/publications/takenotes/take notes.tex:

...-35/tex/texmf-context/tex/context/base/mkiv/lxml-aux.lua:428: attempt to index field 'settings' (a nil value)
stack traceback:
...-35/tex/texmf-context/tex/context/base/mkiv/lxml-aux.lua:428: in function 'include'
...-35/tex/texmf-context/tex/context/base/mkiv/lxml-tex.lua:579: in function <...-35/tex/texmf-context/tex/context/base/mkiv/lxml-tex.lua:567>
(...tail calls...)


De navolgende code is toch niet fout?

De main input is
<?xml version="1.0" encoding="UTF-8"?>
<takenotes>
  <!-- <include buffer="notes-example"/> -->
<include file="notes-example.xml"/>
</takenotes>

De file notes-example.xml bevat slechts
<note> subnodes </note> etc
omsluiten met <root>...</root> doet niets anders.

Ik doe het volgende (met loading tracker enabled
\startxmlsetups notes:takenotes
  % Include files and buffers.
  \xmlfilter{#1}{/include/command(notes:include)}
\stopxmlsetups

\startxmlsetups notes:include
  % Include from file.
 \doifnot{\xmlatt{#1}{file}}{\empty}
    {\writestatus{HVDM-NOTE-DEBUG}{..looking for file \xmlatt{#1}{file}}
     \xmlinclude{#1}{}{file}}
\stopxmlsetups

Zelfde crash in de volgende gevallen
\xmlinclude{#1}{}{file}
\xmlinclude{#1}{.}{file}
\xmlinclude{#1}{../include}{file}

met vriendelijke groet
Hans van der Meer
met vriendelijke groet
Hans van der Meer




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ntg.nl/pipermail/ntg-context/attachments/20160414/0e350dca/attachment-0001.html>


More information about the ntg-context mailing list