On 27.01.2017 15:57, Rick Quatro rick(_at_)rickquatro(_dot_)com 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?
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--