Hi All,
I have this XML:
<?xml version="1.0" encoding="UTF-8"?>
<manual>
<?Fm Document GN800042-VGRShreddingMill_UM_cover.fm?>
<cover/>
<?Fm Document BP00001.fm?>
<chapter/>
<?Fm Document BP00010.fm?>
<chapter/>
<?Fm Document GN800042.fm?>
<chapter/>
<?Fm Document SC00019.fm?>
<chapter/>
<chapter/>
</manual>
For each chapter element, I want to grab the immediately preceding
processing-instruction. The third message in my code doesn't return it. The
second one does, but it doesn't insure that the processing-instruction is
the first preceding-sibling. Thanks in advance for your help.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:math="http://www.w3.org/2005/xpath-functions/math"
exclude-result-prefixes="xs math"
version="3.0" expand-text="yes">
<xsl:output indent="yes"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="/*/*">
<xsl:message>{local-name(.)}</xsl:message>
<xsl:message>{preceding-sibling::processing-instruction()[1]}</xsl:message>
<xsl:message>{preceding-sibling::*[1][self::processing-instruction()]}</xsl:
message>
</xsl:template>
<xsl:mode on-no-match="shallow-skip"/>
</xsl:stylesheet>
Rick
|