Ändra xmlnode i xmldocument leder till urspårning. c#

Permalänk
Medlem

Ändra xmlnode i xmldocument leder till urspårning. c#

Löst: Bytte continue till break

Inte mitt hemmaspråk det här med c#, har en class där jag loopar i en xml fil för att göra vissa konfigurationer. Men det vill sig inte riktigt.

foreach (XmlNode unNodo in xmlRSSPolicy.DocumentElement.GetElementsByTagName("CodeGroup")) { infoBox.Text += ", 5:5"; if (unNodo.Attributes[0].Value == "FirstMatchCodeGroup" && unNodo.Attributes[1].Value == "1" && unNodo.Attributes[2].Value == "Nothing") { infoBox.Text += ", 5:6"; XmlNode xNode1 = xmlRSSPolicy.CreateNode(XmlNodeType.Element, "CodeGroup", null); XmlAttribute nAttr1; nAttr1 = xmlRSSPolicy.CreateAttribute("class"); nAttr1.Value = "UnionCodeGroup"; xNode1.Attributes.Append(nAttr1); unNodo.AppendChild(xNode1); continue; } }

Har kortat det lite ovan, jag får nästan alltid träff på första vändan och hamnar i if-satsen. Men eftersom jag då uppdaterar så ballar den ur nästa varv jag kommer till foreachen då den säger att elementlistan har ändrats.

continue; hade jag för mig skulle bryta foreachen....

Min catch fångar upp. "Uppräkningsåtgärden avbröts eftersom elementlistan ändrades"

Jag vill ju ha en foreach då det kan ligga många codegroup-element där.

Som nödlösning skickar jag ut noden i en ny nod utanför och om noden är satt gör ändringar där... Men vill veta hur jag borde göra.

Tackar på förhand

Visa signatur

På tok för många datorer för att skriva här