This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Match pattern should get child content but gets sib's contentalso
Hello Tom,
I must say, that you are wrong. The built-in template has the lowest
priority, so when the node <aValue> is accessed and a template is
searched for it, the processor uses Doug's template, not the built-in on.
The built-in templates are similar to
<xsl:template match="node()">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="text()">
<xsl:value-of select="."/>
</xsl:template>
As a test for it, use Doug's template/stylesheet and change it a bit, so
that a text will be added by this template:
<xsl:template match="link/aValue">
<xsl:text>from template: </xsl:text>
<xsl:value-of select="."/>
</xsl:template>
You will see it ;-)
Joerg
> Your problem is that the processor never gets to your template at all, since
> there is no path specified from the root to get there. You should put that
> path into the select attribute of the calling template. Here's one way (not
> necesssarily the best but good for highlighting the point):
>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
>
> <xsl:template match='/moduleExternal'>
> <results>
> <xsl:apply-templates select='//link/aValue'/>
> </results>
> </xsl:template>
>
> <xsl:template match="aValue">
> <xsl:value-of select="."/>
> </xsl:template>
>
> <xsl:template match='*'/>
> </xsl:stylesheet>
>
> Tom P
>
> ...
>
>>>====== Here's my simplified xml doc ========
>>>
>>><?xml version = "1.0" encoding = "UTF-8"?>
>>><?xml-stylesheet href =
>>>'file:///C:/Documents%20and%20Settings/doug/My%20Documents/ADE3.xsl'
>>
> type =
>
>>>'text/xsl'?>
>>>
>>><moduleExternal xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
>>><parm>
>>><link>
>>><aValue>Hello</aValue>
>>></link>
>>></parm>
>>><parm>
>>><constraint>
>>><aValue>OOPS</aValue>
>>></constraint>
>>><link>
>>><aValue>World</aValue>
>>></link>
>>></parm>
>>></moduleExternal>
>>>
>>>======== AND THE XSL file ==========
>>><?xml version="1.0" encoding="ISO-8859-1"?>
>>>
>>><xsl:stylesheet version="1.0"
>>>xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
>>>
>>><xsl:template match="link/aValue">
>>><xsl:value-of select="."/>
>>><xsl:text> </xsl:text>
>>></xsl:template>
>>>
>>></xsl:stylesheet>
>>>
>>>
>>>====== I'm opening the xml file in IE6.0 and what I get is this =====
>>>
>>>Hello OOPSWorld
>>>
>>>=========== This may be obvious to everyone but I thought that a match
>>>pattern of "link/aValue" would skip over the <aValue> child of
>>
> <constraint>
>
>>>and get only <aValue> content that is a child of <link>.
>>>
>>>TIA for any help with this... I've not been able to successfully wade
>>>through all of the posts in biglist.
>>>Best regards,
>>>Doug Zirbel
>>
>>
>> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>>
>
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list