ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* XML processing instructions
@ 2022-05-02  7:19 Duncan Hothersall via ntg-context
  2022-05-02  7:33 ` Duncan Hothersall via ntg-context
  2022-05-02  7:44 ` Denis Maier via ntg-context
  0 siblings, 2 replies; 12+ messages in thread
From: Duncan Hothersall via ntg-context @ 2022-05-02  7:19 UTC (permalink / raw)
  To: mailing list for ConTeXt users; +Cc: Duncan Hothersall


[-- Attachment #1.1: Type: text/plain, Size: 1887 bytes --]

I have a big set of existing XML books (held in a derivative of DocBook)
which I'm looking to start processing directly with ConTeXt. (Up to now I
have a system which converts the XML into ConTeXt code which is then
processed, but this is inefficient and lots of the code is now unsupported.)

I've had some success producing output, but my first real sticking point
has come with processing instructions. The existing XML contains lots of
processing instructions of the form
<?capdm whatever?>, some of which can be conditional and introduce new data
etc. But I'd be happy at this stage if I could just process the most basic
one of them, which is used to introduce a line stop in a running paragraph
of text.

My best guess at how to do this was to use the lxml.preprocessor function
to convert the processing instruction into an element, and then process the
element as normal. But (a) my attempt didn't work, and (b) there may well
be a better way.

Minimal working example below, except that obviously the processing
instruction bit doesn't work!

Thanks for any help or insights.

Duncan


MWE:
------

\startbuffer[demo]
<book>
  <para>A paragraph with<?capdm force_line_stop?>a processing
instruction.</para>
</book>
\stopbuffer

\startxmlsetups xml:demo:base
 \xmlsetsetup{#1}{*}{xml:demo:*}
\stopxmlsetups
\xmlregisterdocumentsetup{demo}{xml:demo:base}

\startxmlsetups xml:demo:book
 \xmlflush{#1}
\stopxmlsetups

\startxmlsetups xml:demo:para
 \xmlflush{#1}\endgraf
\stopxmlsetups

\startluacode
 function lxml.preprocessor(data,settings)
  return string.find(data,"<?capdm *force_line_stop?>")
   and string.gsub(data,"<?capdm
*force_line_stop?>","<capdmlinestop></capdmlinestop/>")
   or data
 end
\stopluacode

\startxmlsetups xml:demo:capdmlinestop
 \crlf
 \xmlflush{#1}
\stopxmlsetups

\setupbodyfont[modern]
\starttext
\xmlprocessbuffer{demo}{demo}{}
\stoptext

------

[-- Attachment #1.2: Type: text/html, Size: 2656 bytes --]

[-- Attachment #2: Type: text/plain, Size: 493 bytes --]

___________________________________________________________________________________
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://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 12+ messages in thread
* XML Processing Instructions
@ 2002-03-18 20:11 Michael Wiedmann
  2002-03-21 19:36 ` Simon Pepping
  0 siblings, 1 reply; 12+ messages in thread
From: Michael Wiedmann @ 2002-03-18 20:11 UTC (permalink / raw)


How do I best handle - non ConTeXt related - XML Processing
Instructions?

Given:

<phrase>foo foo foo <?some-pi?> bla bla bla</phrase>

and a mapping of

\defineXMLenvironment[phrase] \em

the rendering stops right after the last "foo".

I just want ConTeXt to ignore the PI.

Michael
-- 
mw@miwie.in-berlin.de                              http://www.miwie.org
mw@miwie.org


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2022-05-03  7:30 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-02  7:19 XML processing instructions Duncan Hothersall via ntg-context
2022-05-02  7:33 ` Duncan Hothersall via ntg-context
2022-05-02  7:44 ` Denis Maier via ntg-context
2022-05-02  7:48   ` Denis Maier via ntg-context
2022-05-02  8:24     ` Duncan Hothersall via ntg-context
2022-05-03  7:30       ` Duncan Hothersall via ntg-context
  -- strict thread matches above, loose matches on Subject: below --
2002-03-18 20:11 XML Processing Instructions Michael Wiedmann
2002-03-21 19:36 ` Simon Pepping
2002-03-23 13:28   ` Michael Wiedmann
2002-03-23 10:08     ` Hans Hagen
2002-03-24 21:23     ` Simon Pepping
2002-03-24 22:50       ` Michael Wiedmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).