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


Xml till dataset - utläsning av childnode

Postades av 2006-05-04 09:17:37 - Malin Palm Friberg, i forum asp.net generellt, Tråden har 5 Kommentarer och lästs av 571 personer

Hej

Jag har en xml-fil som jag läser in till ett dataset som jag sedan har kopplat en repeater till. Detta fungerar utmärkt. Med ett stort men... xml-filen innehåller en root-nod, som i sin tur innehåller en nod vid namn "car", denna nod innehåller i sin tur en massa element. Dessa element går utmärkt att läsa. Men "car"-noden innehåller även en "image"-nod som i sin tur innehåller ett element "images". Hur får jag ut datan ur detta element från en repeater? Jag vet att datasetet innehåller noden då jag kommer åt den genom ds.Tables["image"].Rows[0][0].ToString(); för att komma åt de andra elementen ändrar jag Tables["image"] till Tables["car"].

Koden som jag användt i code-behind ser ut så här:

<code>
protected void Page_Load(object sender, EventArgs e)
{
DataSet ds = new DataSet();

ds.ReadXml("sökväg till cars.xml", XmlReadMode.Auto);

begagnat.DataSource = ds;
begagnat.DataBind();
}
</code>

Och i aspx-filen så här:
<code>
<asp:Repeater ID="begagnat" runat="server">
<ItemTemplate>
<strong>
<%# DataBinder.Eval(Container.DataItem, "brand") %>
<%# DataBinder.Eval(Container.DataItem, "model") %>
</strong>
<%# DataBinder.Eval(Container.DataItem, "regno") %>
<%# DataBinder.Eval(Container.DataItem, "modeldescription") %>
<%# DataBinder.Eval(Container.DataItem, "yearmodel") %>
<%# DataBinder.Eval(Container.DataItem, "firstreg") %>
<%# DataBinder.Eval(Container.DataItem, "miles") %>
<%# DataBinder.Eval(Container.DataItem, "price-sek") %>
<%# DataBinder.Eval(Container.DataItem, "bodytype") %>
<%# DataBinder.Eval(Container.DataItem, "info") %>
<%# DataBinder.Eval(Container.DataItem, "gearboxtype") %>
<%# DataBinder.Eval(Container.DataItem, "fueltype") %>
<%# DataBinder.Eval(Container.DataItem, "fax") %>
<%# DataBinder.Eval(Container.DataItem, "color") %>
<%# DataBinder.Eval(Container.DataItem, "phone") %>
</ItemTemplate>

<SeparatorTemplate>
<hr />
</SeparatorTemplate>
</asp:Repeater>
</code>

Xml-filen ser ut så här:
<code>
<cars>
<car>
<regno>PBX210</regno>
<brand>Audi</brand>
<model>A6</model>
<modeldescription> 1,8 T</modeldescription>
<yearmodel>2000</yearmodel>
<firstreg></firstreg>

<miles>16700</miles>
<price-sek>104500</price-sek>
<bodytype>Sedan</bodytype>
<fax>0510-65656</fax>
<color>Silvermetallic</color>
<phone>0510-62350</phone>
<homepage>http://www.klangsbilservice.se</homepage>
<email>anders@lidkoping.peugeot.se</email>
<information>ABS bromsar, ACC/Klimatanläggning</information>

<gearboxtype>Manuell</gearboxtype>
<fueltype>Bensin</fueltype>
<seller>Klangs Bilservice AB</seller>
<images>
<image>http://www.bytbil.com/images/klangsbilservicelidkoping/PBX210-1000.jpg</image>
<image>http://www.bytbil.com/images/klangsbilservicelidkoping/PBX210-2020.jpg</image>
<image>http://www.bytbil.com/images/klangsbilservicelidkoping/PBX210-2040.jpg</image>
<image>http://www.bytbil.com/images/klangsbilservicelidkoping/PBX210-2060.jpg</image>
<image>http://www.bytbil.com/images/klangsbilservicelidkoping/PBX210-2080.jpg</image>

<image>http://www.bytbil.com/images/klangsbilservicelidkoping/PBX210-2100.jpg</image>
<image>http://www.bytbil.com/images/klangsbilservicelidkoping/</image>
<image>http://www.bytbil.com/images/klangsbilservicelidkoping/</image>
<image>http://www.bytbil.com/images/klangsbilservicelidkoping/</image>
<image>http://www.bytbil.com/images/klangsbilservicelidkoping/</image>
</images>
</car>
</cars>
</code>

Hoppas det är någon som kan hjälpa mig.

/Malin


Svara

Sv: Xml till dataset - utläsning av childnode

Postades av 2006-05-04 13:29:33 - Ola Lindfeldt

För att lösa detta med Dataset måste du tänka i tabeller och relationer (DS är typ en databas i minnet)

altså du skulle behövt:

<image>
<regno>ABC123</regno>
<URL>http://www.bytbil.com/images/klangsbilservicelidkoping/PBX210-1000.jpg</URL>
</image>

och då kunde du fått tag på barnen (images) till varje regno.
(DataRow.GetChildRows)

Du får alltså lägga till detta i XML-filen och sedan ska du skapa en Relation mellan fälten
[regno] i tabellerna.
http://www.aspxlab.com/doc/populate_parent_child_key.html



Men i det här fallet kanske du ska fundera på en annan lösning.

Jag skulle föreslå:

1. Bind till XmlDocument.
Exempel: http://blogs.msdn.com/kaevans/archive/2003/07/04/9713.aspx

2. Använd inte databinding. Kör XSL-transform från XML till HTML i stället.
Se här: http://www.xmlfiles.com/articles/sample_chapters/sams_xmlforaspnet/default.asp


(edit: jag tänkte .Net 1.1 men jag tror inte det är så mycket skillnad med detta i 2.0)



Svara

Sv:Xml till dataset - utläsning av childnode

Postades av 2006-05-04 17:01:30 - Malin Palm Friberg

Tack för tipset. Ska kolla igenom länkarna och se vad jag kan göra. Återkommer säkert med fler frågor ;)


Svara

Sv:Xml till dataset - utläsning av childnode

Postades av 2006-05-04 23:16:15 - Malin Palm Friberg

Hej.

Jag kan tyvärr inte ändra något i xml-filen eftersom den inte är "min" utan läses in från en annan applikation. Jag har kollat lite på att binda till XMLDocument och det verkar fungera fint. Men jag kan inte riktigt förstå det där med XSL-transform. Kan du förklara idén bakom?

Går det inte att binda det till en repeater verkligen? Jag behöver bara ha tag i url för bilderna och ladda dessa i en img-taggs src. Går det inte att lösa med nästlade repeaters på något sätt. Som det är nu får jag ut samtliga url för bilderna under aktuell bil. Men jag skulle som sagt behöva dela på dem så de inte hamnar i samma img-tagg.

Problemet är att jag gör detta åt en annan kille och han kan ingen asp.net programmering alls utan vill bara ha ut resultatet så att han kan styla det med html sedan själv. Därför mitt val av repeatern.

Tacksam för hjälp....


Svara

Sv: Xml till dataset - utläsning av childnode

Postades av 2006-05-05 11:50:23 - Ola Lindfeldt

Vid närmare eftertanke tycker jag du ska köra XSLT.
Det står för eXtensible Stylesheet Transform, och tanken är att du med XML
beksriver hur ett visst XML-dokument skall omformas till XML eller HTML eller egentligen vad som helst.
Man laddar in XSLT-filen och XML-filen i en transform-motor (XslTransform Class) som spottar ur sig ett nytt dokument. Detta presterar väldigt bra och är mycket flexibelt. När lösningen är klar är det lätt att ändra utseendet bara genom att ändra lite i XSL-filen.

Kolla på länken jag tipsade om
http://www.xmlfiles.com/articles/sample_chapters/sams_xmlforaspnet/default.asp
Det är en del att lära sig men när man kan det så löser du alla liknande problem lekande lätt :)


Svara

Sv:Xml till dataset - utläsning av childnode

Postades av 2006-05-16 14:55:37 - Malin Palm Friberg

Jag löste problemet med hjälp av XSLT som du föreslog och det fungerade. Tack så mycket för hjälpen.


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

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 569 602
27 953
271 705
4 014
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