Subject: Re: [xsl] Need an XPath expression for: $B is not contained in $A From: "Eliot Kimber ekimber@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Thu, 14 Jun 2018 13:22:48 -0000 |
This seems to work: <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0"> <xsl:template match="/"> <xsl:variable name="doc" as="document-node()"> <xsl:document> <root> <a> <c> <b>This is b 1</b> </c> <d>This is d</d> </a> <f> <c> <b>This is b 2</b> </c> </f> </root> </xsl:document> </xsl:variable> <xsl:variable name="A" as="element()" select="$doc/*/a"/> <xsl:variable name="B1" as="element()" select="$doc/*/a/c/b"/> <xsl:variable name="B2" as="element()" select="$doc/*/f/c/b"/> <result> <test>b1 in A: <xsl:value-of select="$B1/ancestor::* = $A"/></test> <test>b2 in A: <xsl:value-of select="$B2/ancestor::* = $A"/></test> </result> </xsl:template> </xsl:stylesheet> Produces: <result> <test>b1 in A: true</test> <test>b2 in A: false</test> </result> Cheers, E. -- Eliot Kimber http://contrext.com o;?On 6/14/18, 7:22 AM, "Costello, Roger L. costello@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: Hi Folks, The variable $A contains an element. The variable $B contains an element. I need an XPath expression that determines if $B is not contained in $A. This XPath expression seems to work: not(index-of($B/ancestor::*,$A)) but that seems awful, i.e., not straightforward, convoluted, and probably inefficient. Is there a better (simpler, straightforward, efficient) XPath expression? /Roger
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Need an XPath expression , Michael Kay mike@xxx | Thread | Re: [xsl] Need an XPath expression , Martin Honnen martin |
Re: [xsl] Need an XPath expression , Costello, Roger L. c | Date | Re: [xsl] Need an XPath expression , Martin Honnen martin |
Month |