Have you looked at chapter 3.10 "Testing" of the manual xml-mkiv.pdf? There are a lot of commands there that should help you, such as

\xmldoiftext {#1} {/mdata/date}
 {\bf \xmlflush {#1}}

or \xmldoifelsetext.

There's also \xmlfilter, which you can use to test for the content of tags. And of course, you can process in Lua and search for strings or use lpeg. However, your question is a bit vague now. Show us some code you have and we can take it from there; that's easier than writing the whole setup for you.

Thomas


On 8/21/23 17:29, Michael Löscher wrote:
Hello list,

having the xml data at the bottom, I would like to process it so that the result is like this:

---
What it is (e.g. bold formatted)
date: 2023-08-01 (italic)
Description (small font size)
Another text (small font size)

hd1 - Header 1

§ 1 First  (A first short description)
AAAAAAAAAA
BBBBBBBBBB

§ 2 Second (A second short description)
CCCCCCCCCC
DDDDDDDDDD

§ 3 Third (A third short description)
EEEEEEEEEE
FFFFFFFFFF
---

How can I process the <element>s differently? The first element contains a <date> tag and so it differs from the other ones. The second element's <name> tag contains the word "Header" which makes it different again. The other elements contain a <shortdescription> tag that they all have in common.

What could be the appropriate xml setups to generate the above output?

Michael

---
xml data:
\startbuffer[xmlcontent]
<?xml version="1.0" encoding="UTF-8" ?>
<document>
   <element>
     <mdata>
       <name>What it is</name>
       <date>2023-08-01</date>
     </mdata>
     <tdata>
       <content>
         <p>Description</p>
         <p>Another text</p>
       </content>
     </tdata>
   </element>
   <element>
     <mdata>
       <num>hd1</num>
       <name>Header 1</name>
     </mdata>
     <tdata>
       <content>
         <p>Text of Header 1</p>
       </content>
     </tdata>
   </element>
   <element>
     <mdata>
       <num>1</num>
       <name>First</name>
       <shortdescription>A first short description</shortdescription>
     </mdata>
     <tdata>
       <content>
         <p>AAAAAAAAAA</p>
         <p>BBBBBBBBBB</p>
       </content>
     </tdata>
   </element>
   <element>
     <mdata>
       <num>2</num>
       <name>Second</name>
       <shortdescription>A second short description</shortdescription>
     </mdata>
     <tdata>
       <content>
         <p>CCCCCCCCCC</p>
         <p>DDDDDDDDDD</p>
       </content>
     </tdata>
   </element>
   <element>
     <mdata>
       <num>3</num>
       <name>Third</name>
       <shortdescription>A third short description</shortdescription>
     </mdata>
     <tdata>
       <content>
         <p>EEEEEEEEEE</p>
         <p>FFFFFFFFFF</p>
       </content>
     </tdata>
   </element>
</document>
\stopbuffer


___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : https://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : https://contextgarden.net
___________________________________________________________________________________

Reply via email to