Re: ACTION-512 - Research getting line and column information from XPath

Hi Miguel,

Thanks for your help - it works!
I used the saxon.jar instead of the xalan.jar - sorry for this  
confusion!

My xalan.jar don't like the xpath-default-namespace, it is correct  
that Xalan only supports XSLT 1.0?
I downgraded the first test to XSLT 1.0 and and works fine - line and  
columns, great!

Should we downgrade the XSLTs to 1.0 and use Xalan instead of Saxon?

  Roland



Am 18.06.2007 um 17:28 schrieb Miguel Garcia:

> Hello,
>
> I have just managed to work Xalan lineNumber function. I view an  
> example of using it at apache mailing-list [1] and they use the .  
> (dot) operator instead of node() as parameter of lineNumber  
> function. I just made a basic example and it worked fine.
>
> CommandLine:
> java -jar xalan.jar org.apache.xalan.xslt.Process -L -IN temp/ 
> source.xml -XSL temp/xslt.xsl
>
> Xsl:
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="2.0"
> 		xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> 		xmlns:info="org.apache.xalan.lib.NodeInfo"
> 		extension-element-prefixes="info">
>
> 		<xsl:template match="/">
> 			<xsl:apply-templates/>
> 		</xsl:template>
> 		
> 		<xsl:template match="//two_one">
> 			<xsl:value-of select="name()"/>
> 			<xsl:text> line: </xsl:text>
> 			<xsl:value-of select="info:lineNumber(.)"/>		
> 		</xsl:template>
> </xsl:stylesheet>
>
> Xml:
> <root>
> 	<one />
> 	<two>
> 		<two_one>Texto</two_one>
> 	</two>
> </root>
>
> Miguel
>
> [1] http://mail-archives.apache.org/mod_mbox/xml-xalan-cvs/ 
> 200202.mbox/%3C20020212183816.82831.qmail@icarus.apache.org%3E
>
>>> -----Mensaje original-----
>>> De: public-mobileok-checker-request@w3.org [mailto:public-mobileok-
>>> checker-request@w3.org] En nombre de Roland Gülle
>>> Enviado el: lunes, 18 de junio de 2007 9:42
>>> Para: public-mobileok-checker@w3.org
>>> Asunto: ACTION-512 - Research getting line and column information  
>>> from
>>> XPath
>>>
>>>
>>> It seems that there are no XPath column/line Information functions.
>>>
>>> But with Xalan, it seems that we can use the source location feature
>>> [1] that provide the SourceLocator.
>>> With the SourceLocator, we can use the NodeInfo lineNumber Xalan
>>> function [2].
>>> I try to use this direct in the XSLT at the command line, but I get
>>> always the error:
>>> 'There is more than one method matching the function call
>>> info:lineNumber, and there is insufficient type information to
>>> determine which one should be used'
>>> Add the context or nodeList XPath, won't help, so it seems that  
>>> there
>>> are problems with running this on the command-line.
>>>
>>> Here my test XSLT:
>>> -----------------
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <xsl:stylesheet version="2.0"
>>> 		xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>>>                 xmlns:info="org.apache.xalan.lib.NodeInfo"
>>> 		extension-element-prefixes="info">
>>>
>>> 		<xsl:template match="/">
>>> 			<xsl:value-of select="info:lineNumber(node())"/>
>>> 		</xsl:template>
>>> </xsl:stylesheet>
>>>
>>> It is only a command line problem?
>>> (I never used Xalan functions in XSLT before, but I noticed in the
>>> first CachingTest.xsl that Sean has used this - could someone  
>>> help me
>>> at this problem?)
>>>
>>> Another resolution could be Expat and GetCurrentColumnNumber /
>>> GetCurrentLineNumber, but using the Xalan Source Locator seems to be
>>> the preferred way.
>>>
>>>  Roland
>>>
>>>
>>> [1] http://xml.apache.org/xalan-j/features.html#source_location
>>> [2] http://xml.apache.org/xalan-j/apidocs/org/apache/xalan/lib/
>>> NodeInfo.html#lineNumber 
>>> (org.apache.xalan.extensions.ExpressionContext)
>
>

Received on Monday, 18 June 2007 16:31:38 UTC