DevTrain .NET Developers Home. Das Community Portal für ASP.NET, Visual Basic, C#
 
  Login Status: Hallo   Anmelden  Suche:  
Navigationslinks überspringen
Startseite
Artikel
Blogs
Foren
ClubClub erweitern

 
Ihre Optionen
Save
Mail
Print
Rate
 
Advertising
  ASP konferenz vom 24.-25. Februar 2010 im ehem. IMAX München

 
Navigationslinks überspringen
Autor:Hannes Preishuber

RDF Feeds mit Hilfe von XMLDatasource anzeigen

RDF ist eine Möglichkeit Daten im XML Format zu erstellen. Dieses ist ähnlich dem RSS Format. Soweit in beiden Fällen überhaupt von Formaten sprechen kann. Bei RDF werden XML Namensräume verwendet um zb das Root Element mit rdf:RDF zu kennzeichnen.

 

Das Problem ist, dass das XMLDatasource Steuerelement mit Namensräumen zumindest in der XPath Deklaration nicht umgehen kann. Wenn man auf diese eine RDF Feed in seine ASPX Seiten einbinden will, ist das Ergebnis leer.

Wenn man mit XMlDom Objekten arbeitet kann man den XmlNamespaceManager einbinden. Aber auch das nicht bei XMLDatasource.

Meine Idee ist nun mit einer XSLT Datei die RDF ( und damit XML Daten ) einfach in ein RSS Format zu transformieren.

<?xml version="1.0" encoding="utf-8"?>
<
xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<
xsl:template match="/">
<rss>
<
xsl:for-each select="/*/*[name()='item']">
<
item>
<
title> <xsl:value-of select="child::*[name()='title']"/></title>
</
item>
</
xsl:for-each>
</
rss></xsl:template>
</
xsl:stylesheet>

Dies ist nur für das Titel Element implementiert, lässt sich aber für [link] ect fortführen. Nun kann man in fast gewohnter Form den Feed in die Seite einbinden. Wichtig ist das Atrribut Transformfile zu setzen und dann auch mit der RSS Struktur zu arbeiten. Also die Auswahlliste mit Xpath auf rss/item zu setzen.

<asp:XmlDataSource DataFile="http://www.kino.de/rss.php4?typ=movienews" ID="XmlDataSource1" runat="server" XPath="rss/item" TransformFile="convertrdf.xsl" CacheDuration="600" EnableCaching="true">
</
asp:XmlDataSource>
<
asp:datalist id="DataList1" runat="server" datasourceid="XmlDataSource1">
<
itemtemplate>
<%#XPath("title") %><br />
</
itemtemplate>
</
asp:datalist>

 

 


Diskutieren Sie in den Foren

Business Intelligence Camp – Ihr schnellster Weg zu SSIS, SSAS und SSRS!