Deserializace   zodpovězená otázka

C#, XML

Je vhodné použít k pársování XML deserializaci? Někde jsem viděl, že se dá z XSD udělat třída a do příslušného objektu pak lze snadno deserializovat dané XML. Má s tím někdo zkušenosti?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Záleží na tom, co chcete dělat.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

No na TCP port mi dojde nějaké XML (asi 25 možností - poměrně složitá struktura) a já ho potřebuju rozparsovat a něco udělat, něco dále zpracovat a tak. K jednotlivým XML mám i XSD. Zatím to pársuju klasicky pomocí XmlDocument, XmlNode, XmlAttribute, ...

Podle toho, co jsem zatím vyčetl z netu se mi zdá, že by možná bylo jednodušší udělat z XSD třídy a pomocí nich provést parsování s využitím deserializace, ale nevím, nemám s tím zatím žádnou zkušenost.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pokud bude datová struktura XML souboru stále stejná a máte odpovídající XSD (XSD umí Visual Studio vytvořit z validního XML souboru), pak je vytvoření třídy z XSD a následné využití načtením XML do této třídy velmi efektivní a usnadní práci. Slouží k tomu nástroj XML Schema Definition Tool (Xsd.exe):

http://msdn.microsoft.com/en-us/library/...

Umí vytvářet třídy v jazycích Visual Basic .NET, C#, JScript a Visual J#. Do vytvořené třídy načtete data pomocí System.Xml.Serialization.XmlSerializer.Deserializer, více viz. odkaz.

Xsd.exe je součástí sady Microsoft Windows SDK.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Děkuji, zkusím si s tím pohrát. Také se mi to zdá lepší, než parsovat XML pomocí XmlDocument atd... jen sem to moc neviděl využívat.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback