Hi!
I have a problem with writing to an XML file. When i run my program, the c# give me an exception: "The node to be inserted is from a different document context.". I looked a bit on the exception and I found the answers , that this is happening when we write from one document to another. But i dont write from one to another, but I write from the object to xml file. This is the code where the program shows me exception:
private XmlDocument novDokument = new XmlDocument();
public void zapisiArtikleKiSoNaZalogiVnewDoc(string vhodna, string izhodna)
{
int i = 1;
newDoc.AppendChild(newDoc.CreateXmlDeclaration(new Version(1, 0).ToString(), Encoding.UTF8.BodyName, string.Empty));
XmlElement novSeznamArtikel = newDoc.CreateElement("seznamArtiklov");
foreach (Artikel a in seznamPrebranihArtiklov)
{
if (Convert.ToInt16(a.zalogaA) > 0)
{
XmlElement novArtikel = newDoc.CreateElement("artikel");
novArtikel.SetAttribute("id", i.ToString());
XmlElement novNaziv = newDoc.CreateElement("naziv");
novNaziv.InnerText = a.nazivA;
novArtikel.AppendChild(novNaziv);
XmlElement novaCena = newDoc.CreateElement("cena");
novaCena.InnerText = a.cenaA;
novArtikel.AppendChild(novaCena);
XmlElement novDatum = newDoc.CreateElement("datum");
novArtikel.AppendChild(novDatum);
XmlElement novNabave = doc.CreateElement("nabave");
novNabave.InnerText = a.datumNabaveA;
novDatum.AppendChild(novNabave);
novSeznamArtikel.AppendChild(novArtikel);
i++;
}
}
newDoc.AppendChild(novSeznamArtikel);
XmlTextWriter tw = new XmlTextWriter(izhodna, null);
tw.Formatting = Formatting.Indented;
newDoc.WriteContentTo(tw);
tw.Close();
}
And XML document should look like this:
="1.0"="utf-8"
<seznamArtiklov>
<artikel id="1">
<naziv>Kruh</naziv>
<cena>3</cena>
<datum>
<nabave>03.09.2012</nabave>
</datum>
</artikel>
</seznamArtiklov
If anyone knows the solution to my problem is very welcome. To answer thank you in advance!