Subject: Re: [xsl] Is the first preceding-sibling a processing-instruction? From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Mon, 8 May 2023 13:37:38 -0000 |
I guess you want the first preceding sibling node that isn't a whitespace text node, provided it is a processing instruction. It would be easier if you did xsl:strip-space... But you could do preceding-sibling::node()[not(self::text())][1][self::processing-instruction( )] Michael Kay Saxonica > On 8 May 2023, at 14:32, rick@xxxxxxxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > > Hi All, > > I have this XML: > > <?xml version="1.0" encoding="UTF-8"?> > <manual> > <?Fm Document GN800042-VGRShreddingMill_UM_cover.fm <http://gn800042-vgrshreddingmill_um_cover.fm/>?> > <cover/> > <?Fm Document BP00001.fm <http://bp00001.fm/>?> > <chapter/> > <?Fm Document BP00010.fm <http://bp00010.fm/>?> > <chapter/> > <?Fm Document GN800042.fm <http://gn800042.fm/>?> > <chapter/> > <?Fm Document SC00019.fm <http://sc00019.fm/>?> > <chapter/> > <chapter/> > </manual> > > For each chapter element, I want to grab the immediately preceding processing-instruction. The third message in my code doesnbt return it. The second one does, but it doesnbt 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 <http://www.w3.org/1999/XSL/Transform>" > xmlns:xs="http://www.w3.org/2001/XMLSchema <http://www.w3.org/2001/XMLSchema>" > xmlns:math="http://www.w3.org/2005/xpath-functions/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:m essage> > </xsl:template> > > <xsl:mode on-no-match="shallow-skip"/> > > </xsl:stylesheet> > > Rick > XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list> > EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/293509> (by email <>)
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Is the first preceding-si, Imsieke, Gerrit, le- | Thread | Re: [xsl] Is the first preceding-si, Graydon graydon@xxxx |
Re: [xsl] Is the first preceding-si, Imsieke, Gerrit, le- | Date | Re: [xsl] Is the first preceding-si, Graydon graydon@xxxx |
Month |