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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] question on paths, Monosij Dutta-Roy | Thread | [xsl] Transform some attributes int, Philipp Kursawe |
Re: [xsl] Multiple hierarchy groupi, David Carlisle | Date | Re: [xsl] XSL Dominos, Liam R E Quin |
Month |