- Visszatért a Snapdragonhoz az Infinix, itt a Note 60 és Note 60 Pro
- Esélyes, hogy drágul a Nothing Phone (4a) széria
- Lelkiismeret-furdalás nélkül zabálhatod a süteményt a Galaxy S26-tal
- A Pixel 9 AirDropot, a Pixel 11 Face ID-t kap
- Az Activision áprilisban lekapcsolja a Call of Duty: Warzone Mobile-t
- iPhone topik
- Samsung Galaxy S21 FE 5G - utóirat
- A Pixel 9 AirDropot, a Pixel 11 Face ID-t kap
- Milyen okostelefont vegyek?
- Új design és okosabb AI: megjött a Galaxy S25 készülékcsalád
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Esélyes, hogy drágul a Nothing Phone (4a) széria
- Telekom mobilszolgáltatások
- Mobil flották
- Google Pixel topik
Ú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!
- ID-COOLING IS-50X V2 low profile hűtő, 50mm magas
- Apple iPhone 12 64GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone SE 2020 64GB, Kártyafüggetlen, 1 Év Garanciával
- Pavilion Gaming 15.6" FHD IPS Ryzen 7 5800H RTX 3050Ti 16GB 1TB NVMe új akku gar
- GIGABYTE RTX 5080 12GB GDDR7 GAMING OC - Új, 3 év garancia - Eladó!
- BESZÁMÍTÁS! GIGABYTE B550M R7 5700X 32GB DDR4 512GB SSD RTX 4070 Super 12GB NZXT H510i NZXT 850W
- Vásárlunk iPhone 12/12 Mini/12 Pro/12 Pro Max
- iPhone 13 128Gb 100%(1év Garancia)
- BESZÁMÍTÁS! Részletfizetés 0% THM ÚJ AMD RYZEN 8500G/7600/8700G/7800X3D processzor 3 év 27% áfa
- Bomba ár! Lenovo ThinkPad X280 - i7-8550U I 16GB I 512SSD I 12,5" I HDMI I Cam I W11 I Gari!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest




