RE: [xsl] Attempting *not* to copy certain nodes

Subject: RE: [xsl] Attempting *not* to copy certain nodes
From: "John Meyer" <jmeyer@xxxxxxxxxxx>
Date: Wed, 14 Jan 2004 16:48:48 -0500
Brett,

The reason the xpath is failing is that it uses the soap prefix, which
isn't declared. I believe you just mean to change the xpath to

soap-env:Envelope/soap-env:Body/node()

John Meyer
Senior Software Engineer
Clinician Support Technology
1 Wells Avenue, Suite 201
Newton, MA 02459
www.cstlink.com

-----Original Message-----
From: 3rett 3onfield [mailto:brett@xxxxxxxxxxxxxxxxxxxx] 
Sent: Wednesday, January 14, 2004 4:17 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] Attempting *not* to copy certain nodes

> Date: Wed, 14 Jan 2004 13:12:47 -0500
> From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
> Subject: Re: [xsl] Attempting *not* to copy certain nodes
> 
> At 2004-01-14 12:26 -0500, 3rett 3onfield wrote:
> 
>>The code that suppresses the soap namespace is from G. Ken Holman's
post:
>>http://www.biglist.com/lists/xsl-list/archives/200207/msg01649.html
>>
>>Unfortunately, this seems to generate errors in Saxon (Treebeard's 
>>processor), IE, and Firebird. Ken uses semicolons when declaring
namespaces,
> 
> 
> BigList must have added the semicolons, Brett ... reviewing my
archives I 
> see no semicolons in the original message.  You'll note from the
posted 
> transcript that Saxon runs with the file that is exposed, and it would
not 
> have run if there were semicolons as that isn't well-formed.
> 
> 
>>other places they don't ( http://www.xml.com/pub/a/2001/04/04/trxml/
), 
>>but both (or, of course, something else I'm doing wrong) generate
errors 
>>such that I get no output.
> 
> 
> You don't mention what errors you get ... I'm assuming you cleaned up
the 
> well-formedness of the file.
> 
> ........................ Ken

Thank you for responding. According to RUWF ( 
http://www.xml.com/pub/a/tools/ruwf/check.html) the following is well 
formed:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
 
xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/";
                 exclude-result-prefixes="soap-env"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
                 xmlns:xsd="http://www.w3.org/2001/XMLSchema";
                 version="1.0">
<xsl:output method="text" indent="yes" encoding="UTF-8"/>

<xsl:template match="/">
   <xsl:apply-templates select="soap:Envelope/soap:Body/node()"/>
</xsl:template>

<xsl:template match="*"> <!--synthesize element with the input name-->
   <xsl:element name="{name(.)}" namespace="{namespace-uri(.)}">
     <xsl:copy-of select="@*"/>
     <xsl:apply-templates/>
   </xsl:element>
</xsl:template>

     <xsl:template match="/">
	<xsl:for-each select="MapSecuritiesResult/Security">
		<xsl:if test="Outcome='Success'">
		<xsl:copy-of select="Name"/>, <!--
		--><xsl:copy-of select="Symbol"/>, <!--
		--><xsl:copy-of select="CIK"/>, <!--
		--><xsl:copy-of select="Cusip"/>, <!--
		--><xsl:copy-of select="Market"/>
		<xsl:text>&#13;</xsl:text>
		</xsl:if>
	</xsl:for-each>
	</xsl:template>
</xsl:stylesheet>

These are the errors I'm getting:

IE 6:
Reference to undeclared namespace prefix: 'soap'.

Firebird 0.7:
Error loading stylesheet: Parsing an XPath expression failed.

Xerxes (via Treebeard -- it offers Saxon parsing as an option, but I 
can't seem to get it to work):
Window::transform: 
javax.xml.transform.TransformerConfigurationException: 
javax.xml.transform.TransformerException: 
javax.xml.transform.TransformerException: Prefix must resolve to a 
namespace: soap
javax.xml.transform.TransformerConfigurationException: 
javax.xml.transform.TransformerException: 
javax.xml.transform.TransformerException: Prefix must resolve to a 
namespace: soap
	at 
org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(Transform
erFactoryImpl.java:946)
	at com.robrohan.treebeard.TreeTransform.transform(Unknown
Source)
	at com.robrohan.fangorn.Ent.transform(Unknown Source)
	at com.robrohan.fangorn.Ent.access$1200(Unknown Source)
	at com.robrohan.fangorn.Ent$3.run(Unknown Source)
Caused by: javax.xml.transform.TransformerException: 
javax.xml.transform.TransformerException: Prefix must resolve to a 
namespace: soap
	at 
org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(Transform
erFactoryImpl.java:942)
	... 4 more

Once again, thank you for helping me.

Brett



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


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


Current Thread