Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Hämta och läsa in extern XML fil

Postades av 2006-04-19 10:39:31 - Joachim Feldt, i forum asp.net generellt, Tråden har 7 Kommentarer och lästs av 1141 personer

Hej,

Till att börja med vill jag säga att jag är helt grön på xml....

Jo, jag gör en hemsida för ett företag som skall använda sig av ett externt företag för att få en Newsfeed på hemsidan. Den hämtar automatiskt nyheter från olika källor och skapar en xml-fil som jag ska läsa in och sen loopa igenom och presentera på vår hemsida.

Jag har precis pratat med dom och enligt honom är det ingen webservice, utan dom lägger upp xml-filen på deras server, som jag sedan får läsa in "på lämpligt sätt".

Har aldrig gjort något sånt här förut så:
Hur hämtar jag filen?
Hur läser jag in den?
Hur loopar jag den och presenterar den på min aspx-sida?

Jag använder Visual Studio .NET 2003, och kör VB.NET.

/Jocke


Svara

Sv: Hämta och läsa in extern XML fil

Postades av 2006-04-19 15:03:53 - Ola Lindfeldt

Fritt ur minnet, kolla MSDN/hjälpen för mer info. Eller googla efter bättre exempel.
<code>
Imports System.Xml
'-----------------------------------------
Dim X as New XmlDocument
X.Load ("http://www.site.se/info.xml")

Dim xnArtiklar As XmlNodeList
Dim artikel as XmlNode

xnArtiklar = X.DocumentElement.SelectNodes ( "Artikel")

For Each artikel In xnArtiklar
response.write ( artikel.InnerText & "<br>" )
Next
</code>

Förutsätter XML-struktur enligt nedan:
<InfoRoot>
<Artikel>bla bla bla... </Artikel>
<Artikel>bla bla bla... </Artikel>
<Artikel>bla bla bla... </Artikel>
</InfoRoot>

Det kan göras snyggare och mer dynamiskt med XSLT..
men det kanske är lite mycket att hugga in i om du är helt ny på XML.



Svara

Sv:Hämta och läsa in extern XML fil

Postades av 2006-04-20 13:41:31 - Joachim Feldt

Hej,
Tack för svaret!
Får det inte riktigt att funka.

Så här ser xml-filen ut:

  <?xml version="1.0" encoding="ISO-8859-1" ?> 
- <rss version="2.0">
  - <channel>
      <title>RSS 2.0 Output</title> 
      <link>http://www.newslerantoren.se</link> 
      <description>RSS Feed for user</description> 
      <language>en-us</language> 
      <copyright>Copyright 2005 Newsforetaget AB</copyright> 
      <docs>http://www.newsforetaget.se</docs> 
      <lastBuildDate>Thu, 20 Apr 2006 11:23:34 GMT</lastBuildDate> 
    - <item>
        <title>Rubrik 1 här</title> 
        <description>Ingress till ettan här</description> 
        <agent>Renovering</agent> 
        <link>http://www.lanktillnyheten.se</link> 
        <author>Sveriges Radio</author> 
        <pubDate>Wed, 19 Apr 2006 15:18:38</pubDate> 
      </item>
    - <item>
        <title>Rubrik 2 här</title> 
        <description>Ingress till 2:an här</description> 
        <agent>Renovering</agent> 
        <link>http://lanktillnyheten.com</link> 
        <author>Hällekis-Kuriren</author> 
        <pubDate>Wed, 19 Apr 2006 14:22:19</pubDate> 
      </item>
    - <item>
        <title>Rubrik 3 här</title> 
        <description>Ingress till 3:an här</description> 
        <agent>Renovering</agent> 
        <link>http://lanktillnyheten.com</link> 
        <author>Hällekis-Kuriren</author> 
        <pubDate>Wed, 19 Apr 2006 14:22:19</pubDate> 
      </item>
    - <item>
        <title>Rubrik 4 här</title> 
        <description>Ingress till 2:an här</description> 
        <agent>Renovering</agent> 
        <link>http://lanktillnyheten.com</link> 
        <author>Hällekis-Kuriren</author> 
        <pubDate>Wed, 19 Apr 2006 14:22:19</pubDate> 
      </item>
  </channel>
</rss>


Det är det som är inom varje "<item></item>" jag vill lista hos mig.

Tacksam för lite hjälp!

/Jocke


Svara

Sv: Hämta och läsa in extern XML fil

Postades av 2006-04-20 17:24:57 - Ola Lindfeldt

<code>
xnArtiklar = X.DocumentElement.SelectNodes ( "item")
For Each artikel In xnArtiklar
response.Write ( GetNodeText (artikel, "title") )
response.Write ( GetNodeText (artikel, "description") )
' osv ...
Next


Function GetNodeText(parentNode As XmlNode, name As String) As String
Dim nod as XmlNode = parentNode.SelectsingleNode (name)
If not nod Is Nothing Then Return nod.InnerText
End Function
</code>


Svara

Sv:Hämta och läsa in extern XML fil

Postades av 2006-04-20 21:31:07 - Joachim Feldt

Tack igen,

Det funkar inte riktigt.
Så här är ser all min kod ut:(xml-dokumentet som ovan)

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim X As New XmlDocument
        X.Load("http://minurl/xmlfil.xml")

        Dim xnArtiklar As XmlNodeList
        Dim artikel As XmlNode

        xnArtiklar = X.DocumentElement.SelectNodes("item")
        For Each artikel In xnArtiklar
            Response.Write(GetNodeText(artikel, "title"))
            Response.Write(GetNodeText(artikel, "description"))
            ' osv ... 
        Next

    End Sub

    Function GetNodeText(ByVal parentNode As XmlNode, ByVal name As String) As String
        Dim nod As XmlNode = parentNode.SelectsingleNode(name)
        If Not nod Is Nothing Then Return nod.InnerText
    End Function


Den hittar xml dokumentet, men när man kommer ner till loopen så är counten på "xnArtiklar" 0(noll).
Med andra ord startar aldrig loopen.

Fattar inte riktigt...?

/Jocke


Svara

Sv: Hämta och läsa in extern XML fil

Postades av 2006-04-20 21:39:02 - Joachim Feldt

Nu funkar det!

Felet var på raden:
xnArtiklar = X.DocumentElement.SelectNodes("item")

Det skall vara:
xnArtiklar = X.DocumentElement.SelectNodes("/rss/channel/item")

Tack för hjälpen!!

/Jocke


Svara

Sv: Hämta och läsa in extern XML fil

Postades av 2006-04-20 22:18:50 - Per Gardebrink

En ganska "porrig" lösning är XML-serialisering... Dvs att du skapar objekt som motsvarar XML-filens struktur och på så sätt kan du därefter läsa in hela XML-filen på en gång med i princip en rad kod!

Dock kräver det lite knåpande för att få till klasserna så att dom matchar XML-datat (man kan styra vilka taggar/attribut som ska motsvara vilka properties/variabler osv...

I fallet med RSS skulle man kunna tänka sig följande klasser (ungefär) direkt ur huvet utan att testa:


[XmlRoot("rss")]
public class RSS
{
     [XmlAttribute("version")]
     public Version;

     [XmlArray("Channel")]
     [XmlArrayItem("item", typeof("RssItem")]
     public RssItemCollection items;
}

public class RssItemCollection : CollectionBase 
{

    public RssItem this[int index] 
    {
        get { return (RssItem)List[index]; }
        set { List[index] = value;
    }

    public void Add(RssItem value) 
    {
         List.Add(value);
    }


}

public class RssItem 
{

    [XmlElement("title")]
    public string Title;

    [XmlElement("description")]
    public string Description;

    [XmlElement("agent")]
    public string Agent;

    [XmlElement("link")]
    public string Link;

    [XmlElement("author")]
    public string Author;

    [XmlElement("pubDate")]
    public string PubDate;

}



När du definierat klart klasserna så deserialiserar du in XML-datat ungefär såhär:


   TextReader reader = new ..... (instansera valfri instans av en inström)
   XmlSerializer serializer = new XmlSerializer(typeof(RSS));
   RSS rssData = (RSS)serializer.DeSerialize(reader);



Sen har du hela RSS-dokumentet i variabeln rssData och kan enkelt komma åt datat...


(obs! Koden är absolut inte fullständig och den är i c#-liknande.. har inte pillat med VB.NET på ett tag... )


Svara

Sv:Hämta och läsa in extern XML fil

Postades av 2006-04-21 08:34:28 - Joachim Feldt

Tack för tipset!!

/Jocke


Svara

Nyligen

  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino
  • 04:14 Vad finns det för kratomalternativ
  • 14:16 Indian online casino
  • 14:15 Indian online casino
  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 864
27 962
271 767
720
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies