webForumDet fria alternativet

Ladda in xml i dataset?

.NETur .NET

5 svar · 400 visningar · startad av inspiro

inspiroMedlem sedan sep. 2005673 inlägg
#1

Hej! Har en xml-fil som jag vill ladda in. Problemet är att det är en massa "skräp" i xml-filen så jag vill gå in en bit i själva dokumentet och bara ladda in elementen "Item". Vet inte hur jag ska göra... gör jag som jag gör nu så får jag bara upp info om själva xml-dokumentet:

XmlNodeReader reader = new XmlNodeReader(doc);
DataSet ds = new DataSet();
ds.ReadXml(reader); 
reader.Close();
inspiroMedlem sedan sep. 2005673 inlägg
#2

Förtydligande:
Om jag har ett xml-dokument som ser ut så här:

<xml>
   <blaj>
      <oviktig info />
   </blaj>
   <viktigt>
      <Jätteviktigt />
   </viktigt>
   <viktigt>
      <Jätteviktigt />
   </viktigt>
</xml>

Hur gör jag då för att bara läsa in alla <viktigt> i ett dataset och utelämna allt annat?

erkaMedlem sedan dec. 19996 522 inlägg
#3

Googla på xpath, en teknik som passar utmärkt för att hitta information i xml-dokument, välja noder etc.

http://www.w3.org/TR/xpath

http://www.w3schools.com/xpath/default.asp

inspiroMedlem sedan sep. 2005673 inlägg
#4

Jag har kollat en del på xpath men jag får det inte att funka, exempelvis om jag skriver så här så får jag ändå inte fram något:

foreach(XmlNode node in doc.SelectNodes("//item")) {
  Response.Write(node.Value + "<br>");
}

Det är alltså alla <item> som jag vill ha ut och allt som finns där emellan. Finns det något annat sätt att plocka ut dem, hur gör jag om jag vill loopa själv?

UffeVäxjö!Medlem sedan okt. 200111 inlägg
#5

Läs in xmlfilen.

ds.ReadXml( "dinfil.xml" );

Och gör en ny select --> ds.Table[0].Select["viktigt"]

Kan inte syntaxen utantill. Men det finns en metod som heter "Select" i datasetet.

/Uffe

erkaMedlem sedan dec. 19996 522 inlägg
#6

Har du dina värden som inner text eller values eller element? // utgår från rooten av ditt element via descending

135 ms totalt · 3 externa anrop · v20260731065814-full.94fcd635
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)