Re: [xsl] question on paths

Subject: Re: [xsl] question on paths
From: Monosij Dutta-Roy <monosij.forums@xxxxxxxxx>
Date: Fri, 28 May 2010 18:44:07 -0400
To David and Michael - Thanks. Its resolved now. I think I understand
the issue with holding the node.

Again very much appreciate your help, probably will have more
questions as I work on this. Thank you for such quick responses.

monosij

On Thu, May 27, 2010 at 12:35 AM, Monosij Dutta-Roy
<monosij.forums@xxxxxxxxx> wrote:
> I think I understand what you mean. I will have to try it out tomorrow.
> For me the Document is the root node, so I will try to follow David's
> suggestions.
> Again, I really appreciate your help and fast responses and will keep
> you updated.
> I will also try to send the error messages generated by Saxon.
>
> Thanks.
>
> monosij
>
> On Wed, May 26, 2010 at 7:13 PM, Michael Kay <mike@xxxxxxxxxxxx> wrote:
>>
>> I'm sorry that you are having trouble understand the responses you were
>> given. I'm afraid I may just be repeating the same response in slightly
>> different words.
>>
>>>
>>> I am writing this function:
>>> ---------------
>>> <xsl:function name="fnc:getPatientRolePath">
>>> B B B  <xsl:param name="Version"/>
>>> B B B  <xsl:choose>
>>> B B B  B B B  <xsl:when test="$Version = '3.0'">
>>> B B B  B B B  B B B  <xsl:
>>> select="/n1:Document/n1:recordTarget/n1:patientRole"/>
>>> B B B  B B B  </xsl:when>
>>> B B B  B B B  <xsl:otherwise>UNDEFINED</xsl:otherwise>
>>> B B B  </xsl:choose>
>>> </xsl:function>
>>
>> As I explained in my previous response, "xsl:" is not a valid XML element
>> name, so this won't even get past the XML parser.
>>> ---------------
>>> I am writing this function so as to create a variable
>>> patientRolePath to hold the value:
>>> /n1:Document/n1:recordTarget/n1:patientRole.
>>
>> As David Carlisle explained in his response, you can't hold fragments of
>> XPath expressions in variables, you can only hold values. However, that's
>> fine: to do what you describe below, you don't need to hold the path in
the
>> variable, you can hold the set of nodes selected by the path.
>>
>>> This is because then I can use the variable name
>>> patientRolePath and append child nodes and get required
>>> values such as:
>>>
>>> $patientRolePath/id
>>> $patientRolePath/lastName
>>> $patientRolePath/firstName
>>>
>>> However this that function I can't seem to write it to return
>>> with the path.
>>> <xsl: select="/n1:Document/n1:recordTarget/n1:patientRole"/>
>>> is not valid
>>
>> Correct, "xsl:" is not a valid element name.
>>
>> As I explained before, it's useful to tell us what error messages you are
>> getting, rather than simply saying something doesn't work. Then we can
>> explain the error to you.
>>
>> B HOWEVER <xsl:variable name="patientRole"
>>> select="/n1:Document/n1:recordTarget/n1:patientRole"/>
>>> written as a statement is valid. But does not return me anything.
>>
>> A variable declaration on its own doesn't return anything. A reference to
>> the variable would return something, but a variable that is never
referenced
>> is useless.
>>
>> Regards,
>>
>> Michael Kay
>> http://www.saxonica.com/
>> http://twitter.com/michaelhkay

Current Thread