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

Parsování XML – .NET – Fórum – Programujte.comParsování XML – .NET – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
Mutagen0
Super člen
7. 5. 2013   #1
-
0
-

Zdravím, vytvořil jsem si zápis do XML všechno v pohodě, ale nastal mi tu problem, když to xml chci znova načíst.

<?xml version="1.0" encoding="UTF-8"?>
<Clients>
<Client ID="1">
<Firstname>xxxxx</Firstname>
<Lastname>xxxxx</Lastname>
<Born>xxxxx</Born>		
<IdentificationNumber>xxxxxxxx</IdentificationNumber>	
<CardNumber>xxxxxx</CardNumber>
<ResidenceCity>xxxxxxx</ResidenceCity>		
<ResicenceStreet>xxxxxx</ResicenceStreet>
<DateCome>xxxxxx</DateCome>
<DateLeave>xxxxx</DateLeave>
<PeopleCount>xxx</PeopleCount>
<Price>xxx</Price>
</Client>
<Client ID="2">
.......
</Clients>

Mám vygenerovaný takkovýto XML ale potřeboval bych ho i vypsat, ale jak to už prostě nevím. ID clientu mmi to sebere v pohodě, ale ty ostatní elementy jak vypsat fakt nevim

        private void LoadFromXML()
        {
            XmlDocument doc = new XmlDocument();
            doc.Load("Zakaznici.xml");

            foreach (XmlNode node in doc.SelectNodes("Clients/Client"))
            {
                People client = new People();
                client.ID = Convert.ToInt64(node.Attributes["ID"].Value);
		client.Firstname = ???????;
            }

        }

Díky moc za pomoc.

Nahlásit jako SPAM
IP: 89.190.90.–
liborb
~ Redaktor
+18
Guru
7. 5. 2013   #2
-
0
-

 Asi to bude nějak takto:

client.Firstname = node.FirstChild.InnerText;
Nahlásit jako SPAM
IP: 188.75.135.–
Mutagen0
Super člen
7. 5. 2013   #3
-
0
-

#2 liborb
Tak jasny vid, ale co ty další elementy?

Nahlásit jako SPAM
IP: 89.190.90.–
Řešení
Mutagen0
Super člen
7. 5. 2013   #4
-
0
-
Vyřešeno Nejlepší odpověď

tak jsme na to přišel 

client.FirtsName = node.ChildNodes[0].InnerText;
client.LastName = node.ChildNodes[1].InnerText;
.
.
.
.
Nahlásit jako SPAM
IP: 89.190.90.–
Zed_10
Newbie
7. 5. 2013   #5
-
0
-

Podobný problém jsem taky řešil, ale nakonec jsem dospěl k závěru, že pokaždý vkládám unikátní ID třeba jako atribut elementu. Je to trochu kódu na víc, ale hodně mi to pomohlo právě pro případy mazání a editace.

Nahlásit jako SPAM
IP: 195.122.223.–
JardaJirava0
Stálý člen
9. 5. 2013   #6
-
0
-

Ahoj,

pokud můžeš využít novější .NET Framework (v4), tak můžeš použít nových objektů pro práci s xml jako je XDocument, XElement atd. a následně použít XLINQ pro manipulaci s xml.

Kód by pak mohl vypadat následovně

var xdoc = XDocument.Load("filename.xml");
var clients = xdoc.Element("Clients").Elements("Client");
foreach(var client in clients) {
  var id = client.Attribute("ID").Value;
  var firstName = client.Element("FirstName").Value;
  //atd
}

// psáno a kompilováno v notepadu

  Samozřejmě by se dal ještě lépe využít XLINQ.

Pěkný den,

Nahlásit jako SPAM
IP: 77.78.85.–
MCAD, MCPD
http://jirava.net/blog
http://xaml.cz - Magazín moderních technologií založených na XAML
Jimi
~ Anonymní uživatel
75 příspěvků
12. 5. 2013   #7
-
0
-

Ja to robím takto

var xml = new XmlTextReader("mojSubor.xml");
var doc = new XmlDocument();
doc.Load(xml);

var noda = doc.SelectSingleNode("//Clients/Client");

People client = new People();

client.Firstname = noda["Firstname"].InnerText;
Nahlásit jako SPAM
IP: 188.112.95.–
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, 6 hostů

Podobná vlákna

Parsování xml — založil Paja2

Jak na parsování XML? — založil fatalwir

Parsování HTML — založil Mutagen

 

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