Subject: Re: [xsl] Xml file in an Xml file From: Abel Braaksma <abel.online@xxxxxxxxx> Date: Wed, 04 Apr 2007 18:17:31 +0200 |
Hello everyone.
Using web services I am getting the following XML file returned to me.
<S:Envelope
xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:XS="http://www.w3.org/2001/XMLSchema"
xmlns:XI="http://www.w3.org/2001/XMLSchema-instance"
xmlns:a="http://www.webserviceX.NET"><S:Body><a:GetWeatherResponse><a:GetWeatherResult XI:type="XS:string"><?xml version="1.0" encoding="utf-16"?>
<CurrentWeather>
<Location>Montreal / Pierre Elliot Trudeau International Airport, Que, Canada (CYUL) 45-28N 073-45W 36M</Location>
<Time>Apr 04, 2007 - 11:00 AM EDT / 2007.04.04 1500 UTC</Time>
<Wind> from the ESE (120 degrees) at 15 MPH (13 KT) gusting to 28 MPH (24 KT):0</Wind>
<Visibility> 6 mile(s):0</Visibility>
<SkyConditions> overcast</SkyConditions>
<Temperature> 37 F (3 C)</Temperature>
<DewPoint> 33 F (1 C)</DewPoint>
<RelativeHumidity> 86%</RelativeHumidity>
<Pressure> 29.79 in. Hg (1008 hPa)</Pressure>
<Status>Success</Status>
</CurrentWeather></a:GetWeatherResult></a:GetWeatherResponse></S:Body></S:Envelope>
What I would like to do is "yank out" the second Xml file that is contained at S:Envelope/S:body/a:GetWeatherResponse/a:GetWeatherResult.
I tried the following Xslt code using the latest Altova engine
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:XS="http://www.w3.org/2001/XMLSchema" xmlns:XI="http://www.w3.org/2001/XMLSchema-instance" xmlns:a="http://www.webserviceX.NET">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<NewRoot>
<xsl:value-of select="/S:Envelope/S:Body/a:GetWeatherResponse/a:GetWeatherResult"/>
</NewRoot>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
What I get back is <snip />
What I would actually like to be returned is a true XML file where I could access all the nodes using Xpath, not a "parsed out" version of the file.
For example
<?xml version="1.0" encoding="utf-8" ?> <NewRoot>
<CurrentWeather>
<Location>Montreal / Pierre Elliot Trudeau International Airport, Que, Canada (CYUL) 45-28N 073-45W 36M</Location> <Time>Apr 04, 2007 - 11:00 AM EDT / 2007.04.04 1500 UTC</Time> <Wind>from the ESE (120 degrees) at 15 MPH (13 KT) gusting to 28 MPH (24 KT):0</Wind> <Visibility>6 mile(s):0</Visibility> <SkyConditions>overcast</SkyConditions> <Temperature>37 F (3 C)</Temperature> <DewPoint>33 F (1 C)</DewPoint> <RelativeHumidity>86%</RelativeHumidity> <Pressure>29.79 in. Hg (1008 hPa)</Pressure> <Status>Success</Status> </CurrentWeather>
</NewRoot>
There are a few differences that I would also like, I don't need the namespace declarations. Is there anyway to do this using xslt or am I dreaming?
Cheers, -- Abel Braaksma
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Xml file in an Xml file, Michael Kay | Thread | RE: [xsl] Xml file in an Xml file, Danny Leblanc |
RE: [xsl] Proposed syntax for names, Michael Kay | Date | RE: [xsl] Xml file in an Xml file, Michael Kay |
Month |