Re: [xsl] General algorithm for finding nodes between PIs

Subject: Re: [xsl] General algorithm for finding nodes between PIs
From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 27 Jan 2017 15:06:49 -0000
On 27.01.2017 15:57, Rick Quatro rick@xxxxxxxxxxxxxx wrote:
Thanks for the reply. What I really want is this:

Input:

<?xml version="1.0" encoding="UTF-8"?>
<info>
    <?Fm Condstart VbV-VCO?>
    <p>For this, use <b>that </b>to do that.</p>
    <p>Another paragraph</p>
    <?Fm Condend VbV-VCO?>
    <p><?Fm Condstart USB?>If you need this, do that.<?Fm Condend USB?></p>
    <p>Outside paragraph.</p>
</info>

Output:

<?xml version="1.0" encoding="UTF-8"?>
<info>
    <p platform="VbV-VCO">For this, use <b>that </b>to do that.</p>
    <p platform="VbV-VCO">Another paragraph</p>
    <p platform="USB">If you need this, do that.</p>
    <p>Outside paragraph.</p>
</info>

The basic logic is this: given a "Condstart" processing instruction:

* If the first sibling is an element, then assign an attribute to all
following sibling elements up to the corresponding Condend processing
instruction.

* If the first sibling is a text node, then assign an attribute to the
parent of the Condstart processing instruction.

Pulling up the pi value to the parent requires a different approach, I think. I wonder what happens if there is an element containing several pis, let's say, there is


<p><?Fm Condstart USB?>If you need this, do that.<?Fm Condend USB?>text<?Fm Condstart foo?>Some text<?Fm Condend foo?>another text</p>

which output do you want in that case?

Current Thread