XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Tommy ThomasSubject: Display XML link, using XSLT and a DetailsView Control.. How?!?!
Author: Tommy Thomas
Date: 29 May 2009 05:06 PM
Originally Posted: 29 May 2009 05:05 PM
I have been working at this for quite some time this week. I don't understand what I'm doing wrong:

I'm using VS2005 and VS2008 on two of my machines, I'm using weather api links to XML data. (Weather.com, AccuWeather.com and Intellicast.com), I have just a plain aspx page with the XmlDataSource and DetailView controls on it.

The current link for Weather.com that I'm using is:
http://xoap.weather.com/weather/local/34478?cc=*&dayf=5&link=xoap&prod=xoap&par=1119346667&key=a3234efb35ebc6ca

This xslt does nothing more than bring over the city and state information. It works in Stylus Studio's preview with no problems.

The page doesn't error but displays a table with one row and two cells:
xmlns:s http://www.stylusstudio.com/xquery
Note that the '=' was not brought over and it was used to split the data between the two cells ...

Can't you take the XmlDataSource, add the API link to the XML Data File input field, link to the XSLT that was created in Stylus Studio in the Transform File input field, I even have "//* | //@*" in the XPath Expression in the datasource which should bring over everything...

Here's the code:

==========

<asp:XmlDataSource ID="XmlDataSource1" runat="server"
DataFile="http://xoap.weather.com/weather/local/34478?cc=*&dayf=5&link=xoap&prod=xoap&par=1119346667&key=a3234efb35ebc6ca"
TransformFile="~/weathercom.xsl" XPath="//* | //@*"></asp:XmlDataSource>
<asp:DetailsView ID="DetailsView1" runat="server" DataSourceID="XmlDataSource1"
Height="50px" Width="125px">
</asp:DetailsView>

=============

The XSLT is nothing more than:

=============

<?xml version="1.0"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:s="http://www.stylusstudio.com/xquery">
<xsl:template match="/">
<html>
<head/>
<body>
<div style="text-align: none;">
<xsl:value-of select="/weather/loc/dnam"/>
<br/>
</div>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

============


If I remove the XSLT from the XmlDataSource that I created with Stylus Studio, I get information from the XML, just not transformed ...

If i keep the XSLT and remove the XPath i get a page error the there is no data ...
What am I doing wrong?? Help!!

Postnext
(Deleted User) Subject: Display XML link, using XSLT and a DetailsView Control.. How?!?!
Author: (Deleted User)
Date: 01 Jun 2009 01:10 PM
Hi,
the XSLT you are using has a version=2.0 in the root element; Stylus Studio can run it through Saxon, but .NET doesn't have a 2.0-compliant XSLT processor, and hence doesn't generate anything.
If you are not using any 2.0-specific construct, you should specify version=1.0; otherwise you can investigate how to make Saxon.NET part of your codebase.

Hope this helps,
Alberto

Postnext
Tommy ThomasSubject: Display XML link, using XSLT and a DetailsView Control.. How?!?!
Author: Tommy Thomas
Date: 01 Jun 2009 03:58 PM
Well that makes a little sense to me, so I tried everything again:

---StyleSheet Code----

<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:value-of select="Name"/><xsl:value-of select="StateAbbr"/>
</xsl:template>
</xsl:stylesheet>

------ASPX Page Code--------

<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="http://services.intellicast.com/200904-01/765088383/Weather/Report/USFL0355"
TransformFile="~/weather1.xsl" XPath="Cities/City"></asp:XmlDataSource>
<asp:DetailsView ID="DetailsView1" runat="server" DataSourceID="XmlDataSource1" Height="100%"
Width="100%">
</asp:DetailsView>

---------End Code-----------

I re-created everything with a 1.0 version. Same thing, no information is being passed. I tried multiple different XPath's, and nothing seems to work. The page displays but no information ...

How would you connect to the link: http://services.intellicast.com/200904-01/765088383/Weather/Report/USFL0355

and return just the City and State abbreviation for brevity sake? Maybe I just need to see a working example.

Sincerely and thanks,
TT

Postnext
(Deleted User) Subject: Display XML link, using XSLT and a DetailsView Control.. How?!?!
Author: (Deleted User)
Date: 01 Jun 2009 04:10 PM
Hi Tommy,
the XPath you are trying to use don't match the XML that I see at that address. Try this one

<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:value-of select="Cities/City/@Name"/><xsl:value-of select="Cities/City/@StateAbbr"/>
</xsl:template>
</xsl:stylesheet>

Alberto

Postnext
Tommy ThomasSubject: Display XML link, using XSLT and a DetailsView Control.. How?!?!
Author: Tommy Thomas
Date: 01 Jun 2009 04:25 PM
I have tried so many xpaths ... your code above is basically how the paths are out of stylus studio. So I use your code in the xslt, I get an error:
The specified node cannot be inserted as the valid child of this node, because the specified node is the wrong type.

So, I take the XPath out of the aspx code while leaving your xslt code in tact:
------------------------------
<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="http://services.intellicast.com/200904-01/765088383/Weather/Report/USFL0355"
TransformFile="~/weather1.xsl" XPath="Cities/Cities"></asp:XmlDataSource>
<asp:DetailsView ID="DetailsView1" runat="server" DataSourceID="XmlDataSource1" Height="100%"
Width="100%">
</asp:DetailsView>
------------------------------

Using you code in the xslt, and only changing the xpath in the xmldatasource control:
XPath="Cities/Cities" - same error
XPath="Cities" - same error
Take xpath out of the datasource control - same error

If I use XPath="Cities/Cities" in the datasource control, and remove the xpath from the 'xsl:value-of' statements, so they say either '@Name' and '@StateAbbr', the page comes up but no information is displayed. If I remove the '@', the same thing happens ...

I'm still stumped ... but really appreciate any other suggestions you may have!

TT

Postnext
(Deleted User) Subject: Display XML link, using XSLT and a DetailsView Control.. How?!?!
Author: (Deleted User)
Date: 03 Jun 2009 11:50 AM
Hi Thomas,
your ASP object has an XPath of Cities/Cities, but the source XML has Cities/City. If changing that doesn't fix the problem, try placing a <xsl:value-of select="name()"/> to have the name of the current element displayed in the output.

Hope this helps,
Alberto

Postnext
Tommy ThomasSubject: Display XML link, using XSLT and a DetailsView Control.. How?!?!
Author: Tommy Thomas
Date: 08 Jun 2009 08:53 AM
Yeah, I did have a typo error in that last message, but correcting it did not fix the problem. I also tried your suggestion of adding the line of code u mentioned to the xslt but the same thing keeps happening, no data at all, just blank space.

I'd love to see a full working example that connects to that intellicast link above using an xml datasource in an aspx page and returns any of the information using a simple xslt example like above, and outputs it to a detailsview control ...

This is driving me crazy as I can get it to work fine in Dreamweaver but I want to see it work in VS ...

Postnext
(Deleted User) Subject: Display XML link, using XSLT and a DetailsView Control.. How?!?!
Author: (Deleted User)
Date: 10 Jun 2009 03:33 AM
Hi Tommy,
as it looks the issue is not with your XSLT, but with the way the ASP.NET control use it, we cannot do more than we tried so far; so your next option would be to ask this question to a forum specialized on ASP.NET.

Sorry,
Alberto

Posttop
Tommy ThomasSubject: Display XML link, using XSLT and a DetailsView Control.. How?!?!
Author: Tommy Thomas
Date: 10 Jun 2009 09:32 AM
Yeah, i think so to. When I use the link and the xslt in dreamweaver, dreamweaver writes some vb code in the backend and it works. I think i may need to add some VB code to the codebehind to make it all work. I have it posted in the .NET and VB.NET areas in Experts-Exchange and will let you know if I get an answer.

 
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.