Nacitani Listu z XML – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Nacitani Listu z XML – .NET – Fórum – Programujte.comNacitani Listu z XML – .NET – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
gabbo0
Duch
3. 9. 2011   #1
-
0
-

Zdravim, 

potreboval bych poradit jak nacitat data z XML do list<Level>, asi nejlepe za pomoci LINQ ale nejak se mi to nedari spravne rozhodit. 

XML vypada takto  

<Levels>
  <Level levelNumber = "1" startingX="2" startingY="2">    
    <Cells>
      <Cell CellType="A" PositionX="0" PositionY="0" />
      <Cell CellType="A" PositionX="1" PositionY="0" />
      <Cell CellType="A" PositionX="2" PositionY="0" />
	...
    </Cells>
  </Level>
</Levels>

trida Level

    public class Level
    {
        private int levelNumber;        
        private int startingX;
        private int startingY;

        public List<Cell> cellList = new List<Cell>();
	
	[XmlAttribute("levelNumber")]
        public int LevelNumber
        {
            get { return this.levelNumber; }
            set { this.levelNumber = value; }
        }
	....
    }

V tride cell mam anotaci hlavicek samozrejme taky..

Diky za rady

Nahlásit jako SPAM
IP: 86.49.56.–
Řešení
gabbo0
Duch
3. 9. 2011   #2
-
0
-
Vyřešeno Nejlepší odpověď

#1 gabbo
Tak jsem nakonec nasel solution. UVedu ho kdyby nekdo nekdy googlil.

            Level mylevel = new Level();

            XDocument xdoc = XDocument.Load("xml.xml");
            if (xdoc != null)
            {
                var levels =
                    (from l in xdoc.Descendants("Level")
                     select new Level()
                     {
                         LevelNumber = Convert.ToInt32(l.Attribute("levelNumber").Value),
                         StartingX = Convert.ToInt32(l.Attribute("startingX").Value),
                         StartingY = Convert.ToInt32(l.Attribute("startingY").Value),
                         cellList = (from c in l.Descendants("Cell")
                                      select new Cell
                                      {
                                          CellType = Convert.ToChar(c.Attribute("CellType").Value),
                                          PositionX = Convert.ToInt32(c.Attribute("PositionX").Value),
                                          PositionY = Convert.ToInt32(c.Attribute("PositionY").Value)
                                      }).ToList()
                     }
                    ).ToList();

		//a ted uz jen pres LINQ vyberu patricny level.. 
                mylevel = levels.Where(x => x.LevelNumber == 1).FirstOrDefault();
Nahlásit jako SPAM
IP: 86.49.56.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 45 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý