xsl:strip-space doesn't work if there is a NameTest with a namespace and a wildcard, i.e. something like:
<xsl:strip-space elements="foo:*"/> Attached is a patch against trunk with a fix and some test cases. Nick -- aevum gmbh rumfordstr. 4 80469 münchen germany tel: +49 89 3838 0653 http://aevum.de/
Index: tests/REC/test-3.4-2.xsl =================================================================== --- tests/REC/test-3.4-2.xsl (revision 0) +++ tests/REC/test-3.4-2.xsl (revision 0) @@ -0,0 +1,11 @@ +<xsl:stylesheet + version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:foo1="urn:foo1" + xmlns:foo2="urn:foo2" +> + <xsl:strip-space elements="foo1:*"/> + <xsl:template match="doc"> + <xsl:apply-templates select="*/*"/> + </xsl:template> +</xsl:stylesheet> Index: tests/REC/test-3.4-2.out =================================================================== --- tests/REC/test-3.4-2.out (revision 0) +++ tests/REC/test-3.4-2.out (revision 0) @@ -0,0 +1,2 @@ +<?xml version="1.0"?> + test01 test02 test11test12 test11 test12 Index: tests/REC/test-3.4-2.xml =================================================================== --- tests/REC/test-3.4-2.xml (revision 0) +++ tests/REC/test-3.4-2.xml (revision 0) @@ -0,0 +1,15 @@ +<doc> + <container> + <element1> <child>test01</child> </element1> + <element2> <child>test02</child> </element2> + </container> + <foo1:container xmlns:foo1="urn:foo1"> + <foo1:element1> <foo1:child>test11</foo1:child> </foo1:element1> + <foo1:element2> <foo1:child>test12</foo1:child> </foo1:element2> + </foo1:container> + <foo2:container xmlns:foo2="urn:foo2"> + <foo2:element1> <foo2:child>test11</foo2:child> </foo2:element1> + <foo2:element2> <foo2:child>test12</foo2:child> </foo2:element2> + </foo2:container> +</doc> + Index: tests/REC/Makefile.am =================================================================== --- tests/REC/Makefile.am (revision 1493) +++ tests/REC/Makefile.am (working copy) @@ -21,6 +21,9 @@ test-2.3-2.out test-2.3-2.xml test-2.3-2.xsl \ test-2.5-1.out test-2.5-1.xml test-2.5-1.xsl test-2.5-1.err \ test-2.6.2-1.out test-2.6.2-1.xml test-2.6.2-1.xsl \ + test-3.4-1.out test-3.4-1.xml test-3.4-1.xsl \ + test-3.4-2.out test-3.4-2.xml test-3.4-2.xsl \ + test-3.4-3.out test-3.4-3.xml test-3.4-3.xsl \ test-5.2-1.out test-5.2-1.xml test-5.2-1.xsl \ test-5.2-2.out test-5.2-2.xml test-5.2-2.xsl \ test-5.2-3.out test-5.2-3.xml test-5.2-3.xsl \ Index: tests/REC/test-3.4-1.xsl =================================================================== --- tests/REC/test-3.4-1.xsl (revision 0) +++ tests/REC/test-3.4-1.xsl (revision 0) @@ -0,0 +1,11 @@ +<xsl:stylesheet + version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:foo1="urn:foo1" + xmlns:foo2="urn:foo2" +> + <xsl:strip-space elements="foo1:element1"/> + <xsl:template match="doc"> + <xsl:apply-templates select="*/*"/> + </xsl:template> +</xsl:stylesheet> Index: tests/REC/test-3.4-1.out =================================================================== --- tests/REC/test-3.4-1.out (revision 0) +++ tests/REC/test-3.4-1.out (revision 0) @@ -0,0 +1,2 @@ +<?xml version="1.0"?> + test01 test02 test11 test12 test11 test12 Index: tests/REC/test-3.4-3.xsl =================================================================== --- tests/REC/test-3.4-3.xsl (revision 0) +++ tests/REC/test-3.4-3.xsl (revision 0) @@ -0,0 +1,11 @@ +<xsl:stylesheet + version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:foo1="urn:foo1" + xmlns:foo2="urn:foo2" +> + <xsl:strip-space elements="*"/> + <xsl:template match="doc"> + <xsl:apply-templates select="*/*"/> + </xsl:template> +</xsl:stylesheet> Index: tests/REC/test-3.4-3.out =================================================================== --- tests/REC/test-3.4-3.out (revision 0) +++ tests/REC/test-3.4-3.out (revision 0) @@ -0,0 +1,2 @@ +<?xml version="1.0"?> +test01test02test11test12test11test12 Index: tests/REC/test-3.4-1.xml =================================================================== --- tests/REC/test-3.4-1.xml (revision 0) +++ tests/REC/test-3.4-1.xml (revision 0) @@ -0,0 +1,15 @@ +<doc> + <container> + <element1> <child>test01</child> </element1> + <element2> <child>test02</child> </element2> + </container> + <foo1:container xmlns:foo1="urn:foo1"> + <foo1:element1> <foo1:child>test11</foo1:child> </foo1:element1> + <foo1:element2> <foo1:child>test12</foo1:child> </foo1:element2> + </foo1:container> + <foo2:container xmlns:foo2="urn:foo2"> + <foo2:element1> <foo2:child>test11</foo2:child> </foo2:element1> + <foo2:element2> <foo2:child>test12</foo2:child> </foo2:element2> + </foo2:container> +</doc> + Index: tests/REC/test-3.4-3.xml =================================================================== --- tests/REC/test-3.4-3.xml (revision 0) +++ tests/REC/test-3.4-3.xml (revision 0) @@ -0,0 +1,15 @@ +<doc> + <container> + <element1> <child>test01</child> </element1> + <element2> <child>test02</child> </element2> + </container> + <foo1:container xmlns:foo1="urn:foo1"> + <foo1:element1> <foo1:child>test11</foo1:child> </foo1:element1> + <foo1:element2> <foo1:child>test12</foo1:child> </foo1:element2> + </foo1:container> + <foo2:container xmlns:foo2="urn:foo2"> + <foo2:element1> <foo2:child>test11</foo2:child> </foo2:element1> + <foo2:element2> <foo2:child>test12</foo2:child> </foo2:element2> + </foo2:container> +</doc> + Index: libxslt/imports.c =================================================================== --- libxslt/imports.c (revision 1493) +++ libxslt/imports.c (working copy) @@ -348,6 +348,10 @@ if (node->ns != NULL) { val = (const xmlChar *) xmlHashLookup2(style->stripSpaces, node->name, node->ns->href); + if (val == NULL) { + val = (const xmlChar *) + xmlHashLookup2(style->stripSpaces, "*", node->ns->href); + } } else { val = (const xmlChar *) xmlHashLookup2(style->stripSpaces, node->name, NULL);
_______________________________________________ xslt mailing list, project page http://xmlsoft.org/XSLT/ xslt@gnome.org http://mail.gnome.org/mailman/listinfo/xslt