Subject: Re: [xsl] Measure the length of an XML document in bytes From: Mukul Gandhi <gandhi.mukul@xxxxxxxxx> Date: Fri, 5 Aug 2005 16:45:41 +0530 |
Surprising it works on my PC. I suggest, please remove xml-apis.jar and xercesImpl.jar from CLASSPATH. Please just include xalan.jar. Regards, Mukul On 8/5/05, Khorasani, Houman <houman_khorasani@xxxxxxxxxxxxxx> wrote: > Excellent!!! > > There is only one problem. Both XMLSpy and Xalan are showing the same > error: > > File Size : > (Location of error unknown)XSLT Error > (javax.xml.transform.TransformerException) : > java.lang.NoSuchMethodException: For extension function, could not find > method java.lang.String.getFileSize([ExpressionContext,] ). > > > It produces the text "File Size :" but then the method fails. It can't > be located. > > I have the following jars in my classpath: > > C:\xalan-j_2_6_0\bin\xalan.jar;C:\xalan-j_2_6_0\bin\xml-apis.jar;C:\xerc > es-2_7_1\xercesImpl.jar;C:\Header\Utility.class > > I have no idea why it doesn't find the method within the class. Any > idea? > > Many thanks, > Houman > > > -----Original Message----- > From: Mukul Gandhi [mailto:gandhi.mukul@xxxxxxxxx] > Sent: 05 August 2005 12:05 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: Re: [xsl] Measure the length of an XML document in bytes > > You can configure Xalan-J in XMLSpy 2005 EE as follows: > > In Tools | Options | XSL > > Specify in "External Transformation Program" > java org.apache.xalan.xslt.Process -in %1 -xsl %3 -out %2 -param > filename node.xml > > Xalan-J's JAR file should be in JVM's CLASSPATH. > > (The namespace of Java class need not be changed) > > Regards, > Mukul > > On 8/5/05, Khorasani, Houman <houman_khorasani@xxxxxxxxxxxxxx> wrote: > > Hello Mukul, > > > > Very nice example. Indeed I could try to convince the project manager > > with this solution. > > > > However we are right now using just the built-in XSLT processor of > > XMLSpy 2004. And I have to present them the demo with that. > > > > What do I have to do in order to use the class with XMLSpy? I guess > the > > namespace below has to be changed, right? > > > > xmlns:my-class="xalan://MyPackage.Utility" > > ... > > File Size : <xsl:value-of select="my-class:getFileSize($filename)" /> > > bytes > > > > > > Many Thanks, > > Houman > > > > > > -----Original Message----- > > From: Mukul Gandhi [mailto:gandhi.mukul@xxxxxxxxx] > > Sent: 05 August 2005 05:13 > > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > > Subject: Re: [xsl] Measure the length of an XML document in bytes > > > > Hi Houman, > > I just finished writing a Java extension function which determines > > file size in bytes (as reported by Windows). Below is the Java code, > > XSLT stylesheet and Xalan command line. With this stylesheet, we can > > pass the file name from command line. > > > > Java file > > ----------- > > package MyPackage; > > > > import java.io.File; > > > > public class Utility { > > > > public static long getFileSize(String filename) { > > File file = new File(filename); > > return file.length(); > > } > > } > > > > XSLT stylesheet > > ----------------------- > > <?xml version="1.0" encoding="UTF-8"?> > > <xsl:stylesheet version="1.0" > > xmlns:my-class="xalan://MyPackage.Utility" > > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > > > > <xsl:output method="text" /> > > > > <xsl:param name="filename" /> > > > > <xsl:template match="/"> > > File Size : <xsl:value-of select="my-class:getFileSize($filename)" /> > > bytes > > </xsl:template> > > > > </xsl:stylesheet> > > > > Xalan Command Line > > ------------------------------ > > C:\xml\xsleg\xslt>java org.apache.xalan.xslt.Process -in file_size.xsl > > -xsl file > > _size.xsl -PARAM filename node.xml > > > > File Size : 111 bytes > > > > But sorry, if this is not what you want. Just thought of sharing the > > code. > > > > Regards, > > Mukul > > > > On 8/4/05, Khorasani, Houman <houman_khorasani@xxxxxxxxxxxxxx> wrote: > > > Hi Mukul, > > > > > > Interesting idea. However I am stuck between two middlewares. I > have > > to > > > use plain XSLT's. There won't be any java involved. > > > > > > Actually, I read the customers req. and it says lengths of the > > > characters are good enough. So I don't need to know the length in > > bytes. > > > > > > So if I would use string-length() like this > > > > > > <xsl:value-of select="string-length(*)"/> > > > > > > I would get just the length of the first value. > > > I wish I could use it like that: > > > > > > <xsl:value-of select="string-length(<xsl:copy-of select="*"/>)"/> > > > > > > But this is not possible. > > > Any ideas how to count the length of a document character by > > character? > > > > > > Many thanks, > > > Houman
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Measure the length of an , Khorasani, Houman | Thread | [xsl] Positional Grouping Problem, Mukul Gandhi |
RE: [xsl] Measure the length of an , Khorasani, Houman | Date | [xsl] Positional Grouping Problem, Mukul Gandhi |
Month |