[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
I've got a stylesheet that produces different results depending on whether I use "A != B" or "not(A = B)"? Is this supposed to happen? Can someone explain why? It's not very intuitive.
This is my XML document:
<root>
<p>"Hallo, <cast>Eeyore</cast>!" said <cast>Pooh</cast>. "This is <cast>Tigger</cast>."</p>
<p>"What is?" said <cast>Eeyore</cast>.</p>
<p>"This," explained <cast>Pooh</cast> and <cast>Piglet</cast> together, and <cast>Tigger</cast> smiled his
happiest smile and said nothing.</p>
</root>
The stylesheet that follows is supposed to pick out the cast members:
</xsl:stylesheet>
This actually "works" in xsltproc--I get the output I was expecting:
However, saxon, xalan and sablotron give:
That is, there are duplicates, which I wasn't expecting--but since three out of four processors give this result, I figure it must be the correct result.
However, if the XPath expression line is changed to:
<xsl:apply-templates select="//cast[not(text() = following::cast/text())]"/>
All four processors give the same result, the result given by xsltproc, above. What's going on?
Michael
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
[xsl] Is "A != B" equivalent to "not(A = B)"?
Subject: [xsl] Is "A != B" equivalent to "not(A = B)"? From: "Michael S." <mjs@xxxxxxxxx> Date: Sat, 27 Apr 2002 18:11:32 +1000 |
I've got a stylesheet that produces different results depending on whether I use "A != B" or "not(A = B)"? Is this supposed to happen? Can someone explain why? It's not very intuitive.
This is my XML document:
<root>
<p>"Hallo, <cast>Eeyore</cast>!" said <cast>Pooh</cast>. "This is <cast>Tigger</cast>."</p>
<p>"What is?" said <cast>Eeyore</cast>.</p>
<p>"This," explained <cast>Pooh</cast> and <cast>Piglet</cast> together, and <cast>Tigger</cast> smiled his
happiest smile and said nothing.</p>
</root>
The stylesheet that follows is supposed to pick out the cast members:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:template match="/"> <root> <xsl:apply-templates select="//cast[text() != following::cast/text()]"/> </root> </xsl:template>
<xsl:template match="cast"> <p><xsl:value-of select="."/></p> <xsl:text> </xsl:text> </xsl:template>
</xsl:stylesheet>
This actually "works" in xsltproc--I get the output I was expecting:
<?xml version="1.0"?> <root><p>Eeyore</p> <p>Pooh</p> <p>Piglet</p> <p>Tigger</p> </root>
However, saxon, xalan and sablotron give:
<?xml version="1.0" encoding="utf-8"?><root><p>Eeyore</p> <p>Pooh</p> <p>Tigger</p> <p>Eeyore</p> <p>Pooh</p> <p>Piglet</p> </root>
That is, there are duplicates, which I wasn't expecting--but since three out of four processors give this result, I figure it must be the correct result.
However, if the XPath expression line is changed to:
<xsl:apply-templates select="//cast[not(text() = following::cast/text())]"/>
All four processors give the same result, the result given by xsltproc, above. What's going on?
Michael
-- http://beebo.org
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Re: Re: Fwd: Over/under trimm, Dimitre Novatchev | Thread | Re: [xsl] Is "A != B" equivalent to, Jeni Tennison |
Re: [xsl] Fwd: Over/under trimming , Mike Brown | Date | Re: [xsl] Is "A != B" equivalent to, Jeni Tennison |
Month |