ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Junod Antoine <toto@tots-ns.net>
Subject: Re: xml and buffers
Date: Fri, 20 Jan 2006 08:28:59 +0100	[thread overview]
Message-ID: <20060120072859.GC27110@zapata.cryptyx.com> (raw)
In-Reply-To: <43CFC47A.3040209@wxs.nl>

Thanks a lot!!!
-AJ


On Thu, Jan 19, 2006 at 05:55:22PM +0100, Hans Hagen wrote:
> Junod Antoine wrote:
> 
> >Hello gurus, 
> >
> >I'm a bit into trouble wih buffers and xml parsing. Here is my problem:
> >
> >I've got a .xhtml with the following lines:
> >
> >    [...]
> >    <meta name="course_name" content="G�nie Logiciel" />
> >    <meta name="date" content="23 d�cembre 2005" />
> >    [...]
> >    <title>Auction: document d'analyse</title>
> >    [...]
> >
> >I'm trying to store the content of the meta tag in a buffer, one per
> >meta tag, (ie "G�nie Logiciel" in buffer course_name, "23 d�cembre
> >2005" in buffer date) to use these buffers when I meet the title tag:
> >
> >    \XMLifequalelse{meta}{name}{course_name}
> >         {\startbuffer[course_name]\XMLpar{meta}{content}{}\stopbuffer}{}
> >    \XMLifequalelse{meta}{name}{date}
> >         {\startbuffer[date]\XMLpar{meta}{content}{}\stopbuffer}{}
> >    \defineXMLenvironment [title] {\startstandardmakeup
> >                                   \getbuffer[course_name]
> >                                   \getbuffer[date]}{\stopstandardmakeup}
> >
> >But it does not print anything else than the title.
> > 
> >
> buffers serve a different purpose and are part if a text flow 
> 
> \starttext
> 
> \defineXMLsingular
>  [meta]
>  [name=,content=]
>  {\setevariables[document:meta][\XMLop{name}=\XMLop{content}]}
> 
> \defineXMLenvironment
>  [title]
>  {}
>  {\startstandardmakeup
>       \getvariable{document:meta}{course_name} \endgraf
>       \getvariable{document:meta}{date} \endgraf
>   \stopstandardmakeup}
> 
> \startXMLdata
> <meta name="course_name" content="Genie Logiciel"   />
> <meta name="date"        content="23 decembre 2005" />
> 
> <title/>
> \stopXMLdata
> 
> With a little extension (i'll add it) we can prevent unwanted expansion: 
> 
> \unprotected \def\setvalueXMLpar#1#2#3%
> {\@EA\let\csname#1\@EA\endcsname
>    \csname\ifcsname\@@XMLvariable:#2:#3\endcsname
>      \@@XMLvariable:#2:#3\else\s!empty\fi\endcsname}
> 
> \defineXMLsingular
>  [meta]
>  [name=,content=]
>  {\setvalueXMLpar{document:meta:\XMLop{name}}{meta}{content}}
> 
> \defineXMLenvironment
>  [title]
>  {}
>  {\startstandardmakeup
>       \getvalue{document:meta:course_name} \endgraf
>       \getvalue{document:meta:date} \endgraf
>   \stopstandardmakeup}
> 
> \startXMLdata
> <meta name="course_name" content="Genie Logiciel"   />
> <meta name="date"        content="23 decembre 2005" />
> 
> <title/>
> \stopXMLdata
> 
> 
> \stoptext
> 
> 
> 
> _______________________________________________
> ntg-context mailing list
> ntg-context@ntg.nl
> http://www.ntg.nl/mailman/listinfo/ntg-context

  reply	other threads:[~2006-01-20  7:28 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-01-19 18:23 Junod Antoine
2006-01-19 16:55 ` Hans Hagen
2006-01-20  7:28   ` Junod Antoine [this message]
2006-01-20 19:33   ` Junod Antoine

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060120072859.GC27110@zapata.cryptyx.com \
    --to=toto@tots-ns.net \
    --cc=ntg-context@ntg.nl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).