Subject: Re: Trying to understand XSLT processing
From: <ohaya@xxxxxxx>
Date: Mon, 14 Dec 2009 21:49:19 -0500
|
---- ohaya@xxxxxxx wrote:
> Hi,
>
> I have an XML file:
>
> <SOAP:Envelope xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" xmlns:samlp="urn:oasis:names:tc:SAML:1.0:protocol" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
> <SOAP:Header>
> <wsse:Security SOAP:mustUnderstand="1">
> </wsse:Security></SOAP:Header>
> <SOAP:Body>
> <m:hello xmlns:m="http://services">
> <m:x>123</m:x>
> </m:hello>
> </SOAP:Body>
> </SOAP:Envelope>
>
> and I just want to output the <SOAP:Body> to a message, so I have an XSLT that looks like this:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> xmlns:SOAP="http://www.w3.org/2003/05/soap-envelope"
> xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
> <xsl:output method="xml" />
>
> <xsl:template match="/">
> <xsl:message>*****you just hit the XSLT ******</xsl:message>
> <xsl:message>*****BODY CONTENTS****[<xsl:copy-of select="."/>]</xsl:message>
> </xsl:template>
>
> </xsl:stylesheet>
>
> However, when I execute that XSLT, I'm getting an empty nodeset for the output:
>
> *****you just hit the XSLT ******
> *****BODY CONTENTS****[]
>
> So, I was wondering if someone can explain what I am doing wrong with that XSLT above? Why doesn't the <xsl:copy-of> give me the <Body>?
>
> Thanks, and sorry if this is probably a really dumb question :(...
>
> Jim
>
Hi,
Sorry for the confusion, but the XSLT I've been trying is:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:SOAP="http://www.w3.org/2003/05/soap-envelope"
xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
<xsl:output method="xml" />
<xsl:template match="/">
<xsl:message>*****you just hit the XSLT ******</xsl:message>
<xsl:message>*****BODY CONTENTS****[<xsl:copy-of
select="//Body"/>]</xsl:message>
</xsl:template>
I've also tried various other things for the 'select', i.e.:
//SOAP:Body
/SOAP:Envelope/SOAP:Body
etc.
but, I always get an "empty" output for the <xsl:message> :(...
Again, my apologies for any confusion.
Jim
|