Re: [xsl] Re: UTF characters

Subject: Re: [xsl] Re: UTF characters
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Wed, 31 Mar 2010 08:42:26 -0400
At 2010-03-31 18:07 +0530, Siddhi Thakkar wrote:
Hi again,
Here is an example of the query asked earlier, suppose I have two
paragraphs:

PARA1: <p>INTRODUCTION- This is plain text</p> PARA2: <p>INTRODUCTION- This is text with UTF character b& </p>

AND if write something like:
<xsl:template match="p">
   <xsl:if test="contains(text(),'INTRODUCTION')">
       <!--do something-->
   </xsl:if>
</xsl:template>
Both the paragraphs will enter this xsl:if loop.
Similarly, I would like to write a function or
template which enters the xsl:if loop only if it
comes across a UTF character, and please note
that the input can have any UTF from its generic family.

Now it sounds like you are asking about character encoding and not character sets. That is a very different question from your first question:

I would like to know if there are any built-in
ways in XSLT for the processor to know about
the unicode characters in input xml. Could you please help?

All XML processing is based on Unicode characters and is independent of the character encoding used to represent those Unicode characters. By the time XSLT is acting on the source node tree, any knowledge or awareness of the character set used to encode the Unicode characters is long gone.

But perhaps you are asking "does the text contain
characters outside of those found in the ASCII
table?" ... which I see as a third question.

Both your PARA1 and PARA2 examples are encoded
using UTF.  Both contain characters in
Unicode.  Only PARA2 has characters that are outside of the ASCII table.

 <xsl:template match="p">
   <xsl:if test="string-to-codepoints(.) > 127">
      <!--the string has a non-ASCII character-->
   </xsl:if>
 </xsl:template>

This works because of the use of ">" to test a
node set against a scalar value ... the test is
true if *any* of the comparisons is true.  The
test is false only when all of the tests are false.

I hope this helps.

. . . . . . . . . Ken


-- XSLT/XQuery training: San Carlos, California 2010-04-26/30 Principles of XSLT for XQuery Writers: San Francisco,CA 2010-05-03 XSLT/XQuery training: Ottawa, Canada 2010-05-10/14 XSLT/XQuery/UBL/Code List training: Trondheim,Norway 2010-06-02/11 Vote for your XML training: http://www.CraneSoftwrights.com/s/i/ Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Male Cancer Awareness Nov'07 http://www.CraneSoftwrights.com/s/bc Legal business disclaimers: http://www.CraneSoftwrights.com/legal

Current Thread