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