Hirdetés
Új hozzászólás Aktív témák
-
Keem1
veterán
Srácok, bizonyára lesz olyan, aki emlékszik rá, hogy nagy xml-ekkel dolgozom.
A korábbi megoldásom az volt, hogy
XmlDocument
+XmlNode
, amíg az XML befért a memóriába. Mostanra sok lett az, ami nem fér be.
Új megoldást találtam ki: alapvetőenXmlReader
(ez a nagy XML), és amelyik node épp kell, azt beolvasom DOM-ba.using (XmlReader xmlReader = XmlReader.Create(docUrl))
{
while (xmlReader.ReadToFollowing("product"))
{
if (xmlReader.Name.Equals("product") && (xmlReader.NodeType == XmlNodeType.Element))
{
XmlDocument xmldoc = new XmlDocument();
XmlElement root = xmldoc.CreateElement("product-export");
xmldoc.AppendChild(root);
XmlNode node = xmldoc.ReadNode(xmlReader);
}
}
}Így elvileg egy node-ot tartok a ramban, mindig amivel épp dolgozom. Működne is a korábbi megoldásom az által, hogy a node nevű aktuális csomópont ugyanúgy megvan, csak eddig DOM-ból foreach-csel körbejárva, így meg mindig csak egy van beolvasva.
Igen ám, viszont előállt egy olyan gond, hogy midegyik node mellé társul egy#whitespace
elnevezésű üres cucc, amit az eddigi kód megpróbál feldolgozni.
Tehát most anode.ChildNodes.Count
= (régi)node.ChildNodes.Count *2
, mivel van egy#whitespace
nevű érvénytelen node-om is.
Ezt hogy tudnám kiszedni? És mitől keletkezett? Így kell elképzelni: [kép]
Ú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!
- Samsung Galaxy A32 128GB Kártyafüggetlen 1 év Garanciával
- Dell 14 Latitude 5440 FHD IPS i5-1245U vPro 4.4Ghz 10mag 16GB 256GB Intel Iris XE Win11 Pro Garancia
- BESZÁMÍTÁS! Gigabyte Aorus B450 R7 5700X 16GB DDR4 512GB SSD RTX 3060Ti 8GB ZALMAN I3 NEO 650W
- Telefon felvásárlás!! iPhone X/iPhone Xs/iPhone XR/iPhone Xs Max
- Dell G15 5520 Gamer FHD IPS 120Hz i7-12700H 14mag 16GB 512GB Nvidia RTX 3060 6GB 140W Win11 Garancia
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest