This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]