[NTG-context] issue with lpath

Pablo Rodriguez oinos at gmx.es
Tue Aug 2 21:14:16 CEST 2022


Dear list,

I have this sample:

  \startbuffer[demo]
  <xml>
    <div class="section level3">
      <h3>One</h3>
      <p>Standard paragraph</p>
      <blockquote>
        <p>Quoted text</p>
      </blockquote>
    </div>
    <div class="section level3">
      <h3>Two</h3>
      <blockquote>
        <p>Direct quote</p>
      </blockquote>
    </div>
  </xml>
  \stopbuffer

  \startxmlsetups xml:initialize
    \xmlsetsetup{#1}
      {p|blockquote}
      {xml:*}
    \xmlsetsetup{#1}
      {(div|section)[contains(@class,'level3')]/h3/../!p/../h3}
      {xml:section}
  \stopxmlsetups

  \xmlregistersetup{xml:initialize}

  \startxmlsetups xml:p
    \startpar\xmlflush{#1}\stoppar
  \stopxmlsetups

  \startxmlsetups xml:blockquote
    \startblockquote\xmlflush{#1}\stopblockquote
  \stopxmlsetups

  \startxmlsetups xml:section
    \section{\xmlflush{#1}}
  \stopxmlsetups

  \starttext
     \xmlprocessbuffer{main}{demo}{}
  \stoptext

I need an lpath to select the h3 node above, but only the one with "h3 +
blockquote" as a CSS selector (which could be added the lpath "../h3"
after).

It would be "<h3>Two</h3>" and not "<h3>Two</h3>" in this sample.

Excuse my ignorance, but which is the way to achieve this?

Many thanks for your help,

Pablo


More information about the ntg-context mailing list