Hi, I have an XML document and a XSLT document
THe XSLT document brings back a filtered docmument that has the VendorName that starts with a particular sub-string
This works as expected with alphabet and number characters and the ' (single quote ' entity) character but does not work if a double quote character " is part of the string to filter on
This returns all Vendor Names that begin with A (either case)
XML Document
<?xml-stylesheet type="text/xsl" href="C:\XSL1.xsl"?>
<NEXXML xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<columns/>
<rows>
<row SAPVendorRef="15001" VendorName="A" A Meats" EntityId="3021" rsposition="1"/>
<row SAPVendorRef="57232" VendorName="Abbeyhouse Foods" EntityId="3050" rsposition="2"/>
<row SAPVendorRef="15011" VendorName="Alexandra Rentals" EntityId="3023" rsposition="3"/>
<row SAPVendorRef="10184" VendorName="Alexandra Workwear PLC" EntityId="3014" rsposition="4"/>
<row SAPVendorRef="15012" VendorName="Allied Bakeries NI" EntityId="3024" rsposition="5"/>
<row SAPVendorRef="60143" VendorName="Astron On Line" EntityId="3056" rsposition="6"/>
<row SAPVendorRef="56531" VendorName="Backgammo'n" EntityId="3048" rsposition="7"/>
<row SAPVendorRef="15062" VendorName="British Bakeries NI" EntityId="3025" rsposition="8"/>
</rows>
</NEXXML>
XSLT Document
<xsl:stylesheet version="1.0" xmlns:xsl=" xmlns:fo=" xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<xsl
utput method="xml"/>
<xsl:template match="/">
<NEXXML>
<rows>
<xsl:apply-templates/>
</rows>
</NEXXML>
</xsl:template>
<xsl:template match="rows">
<xsl:apply-templates select="row"/>
</xsl:template>
<xsl:template match="row[ starts-with(translate( @VendorName,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ"
,translate("A","abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ"
) ]">
<xsl:copy-of select="."/>
</xsl:template>
</xsl:stylesheet>
If I want to search on the string A" the line
<xsl:template match="row[ starts-with(translate( @VendorName,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ"
,translate("A","abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ"
) ]">
<xsl:copy-of select="."/>
changes to:
<xsl:template match="row[ starts-with(translate( @VendorName,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ"
,translate("A"","abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ"
) ]">
<xsl:copy-of select="."/>
I now get an error Expected token ')' found 'STRING'
Does anyone know how to solve this
Your help is greatly appreciated.
Regards David Furey
THe XSLT document brings back a filtered docmument that has the VendorName that starts with a particular sub-string
This works as expected with alphabet and number characters and the ' (single quote ' entity) character but does not work if a double quote character " is part of the string to filter on
This returns all Vendor Names that begin with A (either case)
XML Document
<?xml-stylesheet type="text/xsl" href="C:\XSL1.xsl"?>
<NEXXML xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<columns/>
<rows>
<row SAPVendorRef="15001" VendorName="A" A Meats" EntityId="3021" rsposition="1"/>
<row SAPVendorRef="57232" VendorName="Abbeyhouse Foods" EntityId="3050" rsposition="2"/>
<row SAPVendorRef="15011" VendorName="Alexandra Rentals" EntityId="3023" rsposition="3"/>
<row SAPVendorRef="10184" VendorName="Alexandra Workwear PLC" EntityId="3014" rsposition="4"/>
<row SAPVendorRef="15012" VendorName="Allied Bakeries NI" EntityId="3024" rsposition="5"/>
<row SAPVendorRef="60143" VendorName="Astron On Line" EntityId="3056" rsposition="6"/>
<row SAPVendorRef="56531" VendorName="Backgammo'n" EntityId="3048" rsposition="7"/>
<row SAPVendorRef="15062" VendorName="British Bakeries NI" EntityId="3025" rsposition="8"/>
</rows>
</NEXXML>
XSLT Document
<xsl:stylesheet version="1.0" xmlns:xsl=" xmlns:fo=" xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<xsl
<xsl:template match="/">
<NEXXML>
<rows>
<xsl:apply-templates/>
</rows>
</NEXXML>
</xsl:template>
<xsl:template match="rows">
<xsl:apply-templates select="row"/>
</xsl:template>
<xsl:template match="row[ starts-with(translate( @VendorName,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ"
<xsl:copy-of select="."/>
</xsl:template>
</xsl:stylesheet>
If I want to search on the string A" the line
<xsl:template match="row[ starts-with(translate( @VendorName,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ"
<xsl:copy-of select="."/>
changes to:
<xsl:template match="row[ starts-with(translate( @VendorName,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ"
<xsl:copy-of select="."/>
I now get an error Expected token ')' found 'STRING'
Does anyone know how to solve this
Your help is greatly appreciated.
Regards David Furey