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


Loopa ut värden ur en xml fil

Postades av 2006-10-01 23:19:49 - Tyronne Engström, i forum c# (c-sharp), Tråden har 18 Kommentarer och lästs av 823 personer

Hej!

Jag har följande struktur på en XML fil

<code>
<ArrayofRace>
<Race>
<Starts>
<Start>
<Name>Jocke</Name>
<Pos>1</Pos>
</Start>
<Start>
<Name>tage</Name>
<Pos>2</Pos>
</Start>
<Start>
</Start>
</Starts>
</Race>
</ArrayofRace>

Hur can jag loopa igenom <Start> taggarna och hämta ut värdena där?

Jag skall väl använda foreeach men vet f--n inte hur jag skall göra

/Tyronne

</code>


Svara

Sv: Loopa ut värden ur en xml fil

Postades av 2006-10-02 16:53:48 - Simon Dahlbacka

T.ex. med hjäp av nåt i stil med följande:

foreach (XmlElement start in doc.SelectNodes("/ArrayOfRace/Race/Starts/Start")) {
    Console.WriteLine(start.SelectSingleNode("Name/text()").Value);
}


..dvs välj ut lämpliga noder med XPath och gör nåt fiffigt med dom (glöm inte felhanteringen...)


Svara

Sv:Loopa ut värden ur en xml fil

Postades av 2006-10-02 21:27:37 - Tyronne Engström

Hej!

Vill sig inte riktig så jag skickar med min kod

<code>
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("DD.xml");
XmlNode xrootNode = xmlDoc.SelectSingleNode("ArrayOfRace");

// extrahera värden
//string namn = xrootNode.SelectSingleNode("post/namn").InnerText;

TreeNode DD = new TreeNode("Dagens Dubbel");

DD.Nodes.Add("DD 1");
DD.Nodes.Add("DD 2");

foreach (XmlElement start in xmlDoc.SelectNodes("ArrayOfRace/Race/Starts/Start"))
{
DD.Nodes[0].Nodes.Add(start.SelectSingleNode("horse/name").InnerText);
}
treeView1.Nodes.Add(DD);
</code>

Ser du något fel?

/Tyronne


Svara

Sv: Loopa ut värden ur en xml fil

Postades av 2006-10-02 22:04:05 - Peter Larsson

Du har angivit "ArrayOfRace" istället för "ArrayofRace".


Svara

Sv:Loopa ut värden ur en xml fil

Postades av 2006-10-02 22:10:27 - Tyronne Engström

Jag har ändrat nu så att ArrayOfRace är rätt men den verka in komma in i foreach satset. den läser

<code>
foreach (XmlElement start in xmlDoc.SelectNodes("ArrayOfRace/Race/Starts/Start"))
</code>

Men sedan hoppar den ut direkt

Förslag?

/tyronne


Svara

Sv: Loopa ut värden ur en xml fil

Postades av 2006-10-02 22:11:40 - Peter Larsson

Kan du skicka XML-filen?


Svara

Sv:Loopa ut värden ur en xml fil

Postades av 2006-10-02 22:20:17 - Tyronne Engström

Japp!

Vart skall jag skicka den?

/Tyronne


Svara

Sv: Loopa ut värden ur en xml fil

Postades av 2006-10-02 22:21:24 - Peter Larsson

I forumet? :)


Svara

Sv:Loopa ut värden ur en xml fil

Postades av 2006-10-02 22:24:40 - Tyronne Engström

OK du menar så:-)

om här kommer den men den är stor
<code>
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfRace xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Race>
<starts xmlns="java:se.atg.commonbean.racingcards">
<Start>
<horse>
<age>3</age>
<id>550480</id>
<name>Foretta</name>
<nationalityBorn>S</nationalityBorn>
<nationalityOwner>S</nationalityOwner>
<nationalityRaised>S</nationalityRaised>
<sex>

S

<domesticText xmlns="java:se.atg.commonbean.common">sto</domesticText>
<englishText xsi:nil="true" xmlns="java:se.atg.commonbean.common" />
</sex>
<swedenReg>true</swedenReg>
<thoroughbred>false</thoroughbred>
</horse>
</Start>
<Start>
<horse>
<age>3</age>
<id>550480</id>
<name>Foretta</name>
<nationalityBorn>S</nationalityBorn>
<nationalityOwner>S</nationalityOwner>
<nationalityRaised>S</nationalityRaised>
<sex>
S

<domesticText xmlns="java:se.atg.commonbean.common">sto</domesticText>
<englishText xsi:nil="true" xmlns="java:se.atg.commonbean.common" />
</sex>
<swedenReg>true</swedenReg>
<thoroughbred>false</thoroughbred>
</horse>
</Start>
</starts>
</Race>
</ArrayOfRace>
</code>


Svara

Sv: Loopa ut värden ur en xml fil

Postades av 2006-10-02 22:29:52 - Peter Larsson

OJ, trodde den var liiiiite mindre :)
Kanske är bäst du klipper bort den, den tar juh upp 90% av pellesoft.se ;) :P

Du har alltså nåt liknande detta nu?
<code>
<ArrayofRace>
<Race>
<Starts>
<Start>
<Horse>
<Name>Jocke</Name>
<Pos>1</Pos>
</Horse>
</Start>
<Start>
<Horse>
<Name>tage</Name>
<Pos>2</Pos>
</Horse>
</Start>
</Starts>
</Race>
</ArrayofRace>
</code>


Svara

Sv:Loopa ut värden ur en xml fil

Postades av 2006-10-02 22:46:10 - Tyronne Engström

jag har kortat ner den nu.

I detta läget är jag bara intresserad av att kunna loopa ut /Horse/Name i varje Start eftersom dessa skall visas i min treeview
/Tyronne


Svara

Sv: Loopa ut värden ur en xml fil

Postades av 2006-10-02 22:50:04 - Peter Larsson

Följande funkar för mig:

<b>XML</b>
<code>
<ArrayofRace>
<Race>
<Starts>
<Start>
<Horse>
<Name>Jocke</Name>
</Horse>
</Start>
<Start>
<Horse>
<Name>tage</Name>
</Horse>
</Start>
</Starts>
</Race>
</ArrayofRace>
</code>

<b>C#</b>

...
foreach (XmlElement start in doc.SelectNodes("ArrayofRace/Race/Starts/Start")) {
 DD.Nodes[0].Nodes.Add(start.SelectSingleNode("Horse/Name").InnerText);
}
...


Se till att alla tagg-namn är rätt angivna.
Exvis är "Horse" inte samma som "horse".

/ Peter


Svara

Sv:Loopa ut värden ur en xml fil

Postades av 2006-10-02 22:56:26 - Tyronne Engström

hur deklarerar du doc. ?

/Tyronne


Svara

Sv: Loopa ut värden ur en xml fil

Postades av 2006-10-02 22:58:58 - Peter Larsson

XmlDocument doc = new XmlDocument();


Svara

Sv:Loopa ut värden ur en xml fil

Postades av 2006-10-02 23:07:31 - Tyronne Engström

Min kod

<code>
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("DD.xml");

foreach (XmlElement start in xmlDoc.SelectNodes("ArrayOfRace/Race/starts/Start"))
{
DD.Nodes[0].Nodes.Add(start.SelectSingleNode("horse/name").InnerText);
}
</code>

XML struktur

<code>
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfRace xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Race>
<starts xmlns="java:se.atg.commonbean.racingcards">
<Start>
<horse>
<name>Foretta</name>
</horse>
</Start>
<Start>
<horse>
<name>Foretta</name>
</horse>
</Start>
</starts>
</Race>
</ArrayOfRace>
</code>

den vill forfarande inte!

Gör samma sak. Den hoppar vidare när den läst in i floreeach satsen

/Tyronne


Svara

Sv: Loopa ut värden ur en xml fil

Postades av 2006-10-02 23:28:32 - Peter Larsson

Det är ditt "default namespace" (starts taggen) som verkar krångla.

Om du ger namnrymden ett prefix så fungerar det (xmlns:abc="java:se...." exvis).
Men detta förstör dock XML-strukturen en del om du inte ändrar överallt. :/

Någon annan som har nån idé?

/ Peter


Svara

Sv:Loopa ut värden ur en xml fil

Postades av 2006-10-03 08:21:32 - David Tellander

Lägg till namespacet i ett NamespaceManager-objekt.

XmlNamespaceManager man = new XmlNamespaceManager( new NameTable() );
man.AddNamespace( "atg", "java:se.atg.commonbean.racingcards" );
foreach ( XmlElement start in xmlDoc.SelectNodes( "ArrayOfRace/Race/atg:starts/atg:Start", man ) )
{
	// Do something...
}



Svara

Sv: Loopa ut värden ur en xml fil

Postades av 2006-10-04 06:03:47 - Tyronne Engström

Tack!

Nu fungerar det och jag har bara en fråga till

i XML file så är den uppbygg så här

<code>
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfRace xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Race>
<starts xmlns="java:se.atg.commonbean.racingcards">
<Start>
<horse>
<name>Foretta</name>
</horse>
</Start>
<Start>
<horse>
<name>Foretta</name>
</horse>
</Start>
</starts>
</Race>
<Race>
<starts xmlns="java:se.atg.commonbean.racingcards">
<Start>
<horse>
<name>Foretta</name>
</horse>
</Start>
<Start>
<horse>
<name>Foretta</name>
</horse>
</Start>
</starts>
</Race>
</ArrayOfRace>

</code>

hur får jag den att bara göra igenom första delen av <Race> och inte igenom båda två

I XML filen så finns startlistorna för Dagens Dubbel. Så inom första <Race> finns startlistan för DD1 så hur tar jag bara ut den?

<code>
XmlNamespaceManager man = new XmlNamespaceManager( new NameTable() );
man.AddNamespace( "atg", "java:se.atg.commonbean.racingcards" );
foreach (XmlElement start in xmlDoc.SelectNodes("ArrayOfRace/Race/atg:starts/atg:Start", man))
{
DD.Nodes[0].Nodes.Add(start.SelectSingleNode("atg:horse/atg:name",man).InnerText);
}

</code>


/Tyronne


Svara

Sv:Loopa ut värden ur en xml fil

Postades av 2006-10-04 08:02:12 - David Tellander

Ange att bara första race elementet ska väljas i xpath-uttrycket:

xmlDoc.SelectNodes("ArrayOfRace/Race[1]/atg:starts/atg:Start", man))


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 170
27 953
271 705
1 001
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