[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Re: Determining whether no single instance of a specific node exists


Subject: Re: [xsl] Re: Determining whether no single instance of a specific node exists
From: Mark Peters <markpeters.work@xxxxxxxxx>
Date: Fri, 5 Jun 2009 09:00:57 -0400

Hi Everyone,

     <xsl:when test="count(not(b/c)) &gt;= 1">

This statement looks correct, but it isn't working for me. The
statement filters the sets of <b/> nodes where the first node does not
contain <c/>.  But if the first <b/> node in the set contains a <c/>,
then the set is not filtered. It looks like the count() function is
only looking at the first <b/> node.

I tried the following statement instead:

     <xsl:for-each select="attributeList/attribute">
          <xsl:variable name="counter" select="count(not[notChangeable])"/>
     </xsl:for-each>

     <xsl:choose>
          <xsl:when test="$counter &gt;= 1">
     ...

But the processor replied that $counter was not set.

I tried test="not(b/c)" earlier, with the same results as the first
statement in this email: The statement appears to filter on the first
<b/> node in the set only.

Thanks,
Mark


On Thu, Jun 4, 2009 at 2:37 PM, Michael Dykman<mdykman@xxxxxxxxx> wrote:
> On Thu, Jun 4, 2009 at 2:27 PM, Mark Peters <markpeters.work@xxxxxxxxx>
wrote:
>> Sorry, my XSL examples weren't quite right.  I'm trying to determine
>> whether no instance of <c/> exists for each <b/> set.
>>
>> So, in my XSL document, assume I'm processing each <a/> node.
>>
>> 1,
>> <xsl:when test="not(b/c)">
>>
>> 2.
>> <xsl:when test="count(not(b/c)) &gt;= 1">
>>
>> Thanks,
>> Mark
>>
>>
>> On Thu, Jun 4, 2009 at 2:20 PM, Mark Peters <markpeters.work@xxxxxxxxx>
wrote:
>>> Hi Everyone,
>>>
>>> I have the following XML document:
>>>
>>>     <a>
>>>             <b/>
>>>             <b/>
>>>             <b/>
>>>     </a>
>>>     <a>
>>>             <b/>
>>>             <b/>
>>>             <b>
>>>                     <c/>
>>>             </b>
>>>
>>>     </a>
>>>     <a>
>>>             <b/>
>>>             <b/>
>>>             <b/>
>>>     </a>
>>>
>>> For each <b/> set, I want to apply a transformation only if no single
>>> instance of <c/> exists. I know how to check whether a node does
>>> exist, but not how to check whether no single instance of the node
>>> exists.
>>>
>>> I've tried the following conditional statements without success:
>>>
>>> 1,
>>> <xsl:when test="not(a/b/c)">
>>>
>>> 2.
>>> <xsl:when test="count(not(a/b/c)) &gt;= 1">
>>>
>>>
>>> What conditional statement should I use?
>>>
>>> Thanks in advance for any help.
>>>
>
> Are you looking for something along the line of
>
> <xsl:when test="not(count(b/c) &gt;= 1)">
> ??
> --
>  - michael dykman
>  - mdykman@xxxxxxxxx
>
>  - All models are wrong.  Some models are useful.


Current Thread
Keywords