.[ ČeskéHry.cz ].
čtení XML ze sítě

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> .NET
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
]semo[



Založen: 29. 07. 2007
Příspěvky: 1526
Bydliště: Telč

PříspěvekZaslal: 19. listopad 2013, 14:45:45    Předmět: čtení XML ze sítě Odpovědět s citátem

Dneska jsem napsal několik odpovědí na fóru, tak se taky na něco zeptám :-)

Po síti mi chodí XMLka. Mám nahozený thread, který čte data z TcpClienta. Ty ale samozřejmě můžou přijít po kouskách. Ale já potřebuju přečíst celý xml dokument, takže by se hodil nějaký blokující XMLReader, který by prostě počkal, až to z toho NetwokStreamu přečte všechno.

Kdybych to měl dělat ručně, tak musím bufferovat příchozí data a počítat špičatý závorky, nebo tak něco. Což může být docala nebezpečný (když třeba nevezmu v úvahu CDATA podobně).

Doufal jsem, že XmlDocument.Load(XmlTextReader(NetworkStream)) bude fungovat, ale nefunguje.

Nevíte někdo?
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
johnnash



Založen: 30. 07. 2007
Příspěvky: 80

PříspěvekZaslal: 19. listopad 2013, 16:32:57    Předmět: Odpovědět s citátem

zkusil bych treba http://saxdotnet.sourceforge.net/ nebo nejakou podobnou libku pro SAX
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
rezna



Založen: 27. 07. 2007
Příspěvky: 2156

PříspěvekZaslal: 19. listopad 2013, 22:03:27    Předmět: Odpovědět s citátem

vsak .NET SAX snad primo v sobe v XmlReaderu - semo, zkus to XML precist pomoci XmlReader tridy primo (mozna tam budou i nejaky moznosti nastaveni) nez to cist do DOMu

stejne mas lepsi to cist pomoci readeru a reagovat primo, nez zbytecne nacist DOM a az nad nim resit co prislo - zejmena jestli se jedna o nejaky vetsi XML
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
]semo[



Založen: 29. 07. 2007
Příspěvky: 1526
Bydliště: Telč

PříspěvekZaslal: 20. listopad 2013, 09:54:42    Předmět: Odpovědět s citátem

No, jedná se o kód, který jsem zdědil po svém předchůdci a jako jednu z mála částí jsem to nepřepsal (asi ke škodě věci). Čte se to jako string, ve kterým se jen hledají tagy, no humus. Takže ani DOM, ani Reader... :-). Šlo mi jen o to, jestli v .NET existuje nějaký XmlReader, validátor, nebo něco podobnýho, kterej by četl z NetworkStreamu a blokoval by, dokud to xml nebude celé. Řezňo, píšeš, že tam asi bude nějaký nastavení...to je to co sem právě hledal a nenašel! :-).
Včera mi poradil perry na icq, ať si počkám na ukončovací element (je vždy stejný). Udělal jsem to takhle jednoduše a bude to stačit. Chtěl sem být korektní, aby to fungovalo na všechny XML, takže mě takováhle věc ani nenapadla.
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
OndraSej



Založen: 28. 07. 2007
Příspěvky: 767
Bydliště: Brandýs nad Labem

PříspěvekZaslal: 20. listopad 2013, 12:07:18    Předmět: Odpovědět s citátem

semo> Nevim, jaky presne mas problem s System.Xml.XmlReader, ale neni System.Xml.XmlReader.ReadSubtree, pripadne System.Xml.XmlReader.ReadOuterXml na top-level elementu presne to, co potrebujes? Nebo tam je nejaky problem s blokovanim?
_________________
http://trionteam.net
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
]semo[



Založen: 29. 07. 2007
Příspěvky: 1526
Bydliště: Telč

PříspěvekZaslal: 20. listopad 2013, 12:14:15    Předmět: Odpovědět s citátem

Mám dojem, že jsem to bez úspěchu zkoušel. Asi to prostě přestane číst, když stream nemá žádná data (teprve totiž přijdou ze sítě). No možná se pletu a nefungovalo to jen náhodou. Ale už to zkoušet nebudu.

Díky za reakce.
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> .NET Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna