Hirdetés
- Meggyi001: Kórházi ellátás: kuka vagy finom?
- weiss: Lakodalom van a mi utcánkban...
- eBay-es kütyük kis pénzért
- Luck Dragon: Asszociációs játék. :)
- Meggyi001: Hasznos helyek és tippek Párizsban, amiket jó eséllyel keresni is fogsz...
- GoodSpeed: Kell-e manapság egérpad vagy sem?
- bitpork: 2025, zárás
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- LordAthis: RETRÓnia - RETRÓ Mánia - Úton van hozzám egy csodás történelmi darab!
Új hozzászólás Aktív témák
-
Keem1
veterán
Már megint elakadtam

A téma lehet hogy ismerős lesz a korábbi posztjaimból, de azért frissítem az emlékeket.Nagy (több GB-os) XML-ekkel dolgozunk, amit az xmlReader.ReadToFollowing("product") segítségével olvasok végig (így piszok gyors és szinte semmi memóriafogyasztása sincs a DOM-alapú megnyitáshoz képest).
XML struktúra:
<product-export>
<product>
<product>
<product>
</product-export>Amikor egy adott product node-on vagyok, akkor azt az egyet betöltöm egy DOM alapú objektumba, és azzal az eggyel már DOM alapon dolgozom. Így valójában hiába van az XML-ben több tízezer <product> node, mindig csak egyet töltök be DOM-ba és dolgozom vele. Ez eddig beválni látszott, ám úgy tűnik, egy óriási hiba van a gépezetben. Ugyanis onnan kezdve, hogy betöltöm az egy szem node-ot, rögtön szelektálni kezd a program, és kihagy egy csomó product node-ot. Nem jöttem rá, miért, és mi alapján. Van egy kicsi teszt fájlom, 35 node-dal, ebből 17-et lát ezzel a módszerrel. A DOM-részt kihagyva végigszalad mind a 35-ön.
Mutatom:
while (xmlReader.ReadToFollowing("product"))
{
if (xmlReader.Name.Equals("product") && (xmlReader.NodeType == XmlNodeType.Element))
{
// Számláló továbbléptetése
counter++;
Console.WriteLine(counter.ToString() + ". " + xmlReader.Name.ToString());
XmlDocument xmldoc = new XmlDocument();
XmlElement root = xmldoc.CreateElement("product-export");
xmldoc.AppendChild(root);
XmlNode node = xmldoc.ReadNode(xmlReader);A legutolsó kódsornál jelentkezik az anomália (
XmlNode node = xmldoc.ReadNode(xmlReader);). Ha kikommentezem, ugyan üres lesz a DOM-om, de végigmegy az összes producton. Ezt a számláló utáni kiíratás mutatja.Kimenet, ha kikommentezem az említett részt:
0. product
1. product
2. product
3. product
4. product
5. product
6. product
7. product
8. product
9. product
10. product
11. product
12. product
13. product
14. product
15. product
16. product
17. product
18. product
19. product
20. product
21. product
22. product
23. product
24. product
25. product
26. product
27. product
28. product
29. product
30. product
31. product
32. product
33. product
34. product
35. productÉs ha benne hagyom:
0. product
1. product
2. product
3. product
4. product
5. product
6. product
7. product
8. product
9. product
10. product
11. product
12. product
13. product
14. product
15. product
16. product
17. productMit rontok el?

Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Google Pixel 10 Pro 256GB, fekete + Pixel Watch 4 45mm LTE + Ajándék: Google Pixel Buds Pro 2
- -ÚJ,2 ÉV GAR- DDR5 GAMER PC: RYZEN 7 8700F/9700X/9800X3D +RX 6600/6700XT +16-64GB DDR5! SZÁMLA!
- Dell Latitude 7430 x360 Ütésálló Érintős Hajtogatós Profi Ultrabook 14" -60% i7-1265U 16/512 IRIS Xe
- HP E24m G4 Monitor FHD IPS webkamerával, Windows Hello-támogatással
- Lenovo ThinkPad T14 Gen 5 Ultra-I7/16GB/512SSD/FHD/garancia!
- Kèszleten levő VGA-k! Kamatmentes rèszletre is! Èrdeklődj!
- GYÖNYÖRŰ iPhone 12 Pro 128GB Graphite - 1 ÉV GARANCIA - Kártyafüggetlen, MS3258,100% Akkumulátor
- HIBÁTLAN iPhone 13 256GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS3735, 100% Akkumulátor
- Telefon felváráslás!! Samsung Galaxy S22/Samsung Galaxy S22+/Samsung Galaxy S22 Ultra
- ÁRGARANCIA!Épített KomPhone i5 10400F 16/32/64GB RAM RTX 3060 12GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest



