|
Subject: RE: RE: [xsl] XPath expression confusion From: cknell@xxxxxxxxxx Date: Thu, 12 Jan 2006 19:47:18 -0500 |
Thanks. -- Charles Knell cknell@xxxxxxxxxx - email
-----Original Message----- From: Xia Li <xli@xxxxxxxxxxxxx> Sent: Thu, 12 Jan 2006 15:39:58 -0800 To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> Subject: RE: [xsl] XPath expression confusion
<xsl:when test="not(/system/components/component/requirement/@number .)"> <requirement><xsl:value-of select="." /></requirement> </xsl:when?
That means if there exists an item in the sequence selected by "/system/components/component/requirement/@number" that is not equal to the current value of <number> in the iteration, the condition is always true. That is why you output all the value of <number> elements.
File A
-------
<requirements>
<requirement>
<number />
<requirement>
<number />
And so on to an arbitrary depth
</requirement>
</requirement>
</requirements>File B
-------
<system>
<components>
<component>
<requirement number="" />
<requirement number="" />
<requirement number="" />
</component>
</components>
</system>There will be an arbitrary number of components, each with an arbitrary number of requirements.
My goal is to produce a document containing all the requirement/number elements from File A that don't have a matching requirement/@number in File B.
<xsl:variable name="all-reqs"
select="document('requirements.xml')/requirements//requirement/number"
/> <xsl:template match="/">
<un-assigned-reqs>
<xsl:for-each select="$all-reqs">
<xsl:choose>
<xsl:when
test="/system/components/component/requirement/@number = ." />
<xsl:otherwise>
<requirement><xsl:value-of select="." /></requirement>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</un-assigned-reqs>
</xsl:template>It was my belief that the XPath expression in the test would search all the number attribute values in the document for a value that matched the value of the current iteration of the loop. Instead, it seems that there are no matches, as I get one element output for each iteration of the loop.
-- Charles Knell cknell@xxxxxxxxxx - email
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] XPath expression confusio, David Carlisle | Thread | Re: [xsl] XPath expression confusio, David Carlisle |
| Re: [xsl] XPath expression confusio, David Carlisle | Date | [xsl] Re: Collecting sibling nodes , Mark Wilson |
| Month |