xsl-list
[Top] [All Lists]

RE: [xsl] recognize character entities

2006-08-29 07:00:37

is there a way to recognize and filter only elements which 
text() begins with a character entity?

  <Element>&Amp;This is filtered</Element>
  <Element>&epsilon;This filtered</Element>
  <Element>&euro;This is filtered</Element>
  <Element>This is *not* filtered</Element>
  <Element>And this also not</Element>

Technically these are all "entity references", not "character entities". If
you wrote "&#x20ac;", that would be a "character reference".

You can't detect these in XSLT, because the XML parser expands the character
entity before the XSLT processor gets to see it. If you really need to
distinguish a Euro sign written as &euro; from one written as a real Euro
character (from one written as &#x20ac;, if that's the right code), then you
need to preprocess the XML to flag these so they survive the journey through
the XML parser. For example, you could use a Perl script that replaces
&euro; by <?ent euro?>.

But this is against the spirit of XML: the entity reference is supposed to
be treated by the receiving application in exactly the same way as its
expansion would be treated.

Michael Kay
http://www.saxonica.com/



in a template match like

   <xsl:template match="Element[starts-with(text(),
'recognize_a_character_entity_here')]">
       <NewElement>
           <xsl:apply-templates select="@* | node()"/>
       </NewElement>
   </xsl:template>

for mathematical xml-files we have a lot (around 2000) 
character entities to recognize and no chance to select them 
individually.

thanks in advance
for any help

frank

(thanks to mukul, abel and michael for answering my 
apostrophe/ quotation mark question)
--
Frank Marent
CTO

emnemics ag
Jungholzstrasse 43
CH-8050 Zürich

Tel   +41 44 307 32 71
Fax   +41 44 307 32 75
Mail  frank(_dot_)marent(_at_)emnemics(_dot_)ch
Skype frank.marent
URL   www.emnemics.ch

Ein Unternehmen der Kalaidos Bildungsgruppe Schweiz




--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--