Backtick Causing Invalid Character
Added by Christopher Yocum almost 2 years ago
Hi,
I need some help with a character that I need to match in an XML document, backtick (`). However, when I input code like this using Saxon 12 HE:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="3.0">
<xsl:mode on-no-match="shallow-copy"/>
<xsl:variable name="foo" select="`"/>
</xsl:stylesheet>
Thank you for you very much for your help in this. I receive the following error:
Error in {} in xsl:variable/@select on line 8 column 41 of text.xsl: XPST0003 Invalid character '' (backtick) in expression Errors were reported during stylesheet compilation
I have also tried using the double escape method (``) and I have also tried `. Is there a way to match a backtick in Saxon?
Replies (3)
Please register to reply
RE: Backtick Causing Invalid Character - Added by Christophe Marchand almost 2 years ago
In one of my XSL, I have this function, and it perfectly works with Saxon 10 to 12 :
<xsl:function name="prv:isCodeMarker" as="xs:boolean">
<xsl:param name="s" as="xs:string"/>
<xsl:sequence select="prv:isString($s) and $s=>normalize-space()=>starts-with('```')"/>
</xsl:function>
I try to check if a string starts with 3 bactkticks.
Christophe
RE: Backtick Causing Invalid Character - Added by Christophe Marchand almost 2 years ago
Oops, sorry.
@select
expects an XPath expression. You should wrap your backtick between apos :
<xsl:variable name="foo" select="'`'"/>
Hope this helps, Christophe
RE: Backtick Causing Invalid Character - Added by Christopher Yocum almost 2 years ago
HI Christophe
Thanks for your help. I was also able to get help in another part of this service (I don't know this software all that well). Basically I had to wrap the backtick in single quotes and I had forgotten this simple fact about select. Basically, I needed to have this:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="3.0">
<xsl:mode on-no-match="shallow-copy"/>
<xsl:variable name="foo" select="'`'"/>
</xsl:stylesheet>
Please register to reply