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%
[EMAIL PROTECTED]@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 via email to