xsl-list
[Top] [All Lists]

Re: synthaxe pb with > in xsl

2003-03-20 07:13:03
Hi Lo,

but when i create in java (with the dom libraries) the xsl dom tree,
i don't succeed to write the xsl:if condition like this :

.....
If2.setAttribute("test","string-length('"+node+"') > '5' ");
where node is the name of the current node.

You're mixing up the *string*value* of the attribute (which is what
you set with .setAttribute() with the *serialised* value of the
attribute.

When you create an attribute using .setAttribute(), the second
argument is a string that is the value of the attribute. In this case,
you're setting the attribute to the value:

  string-length('Nuance') > '5'

(Note that I'm not sure why you have the single quotes in there; I
don't think that you want them.)

If you serialised this string value as XML, you'd get:

  test="string-length('Nuance') > '5'"

Or, equivalently:

  test='string-length('Nuance' > '5''
  
When an & in a string value is serialised as XML, it gets serialised
as &.

Consider the one that works:

If2.setAttribute("test","string-length('"+node+"') > '5' ");

Here you're setting the value of the attribute to the string:

  string-length('Nuance') > '5'

When that gets serialised as XML, you might get:

  text="string-length('Nuance') > '5'

The > in a string value is serialised using the entity reference >.

(Note that this might not happen -- only &, < and whatever character
gets used as the quotes around the attribute value need to be
serialised using entity references. > never needs to be escaped,
though it can be.)

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>