Torna al Thread
public void exportToXml(TreeView tv, string filename)
{
xr = new XmlTextWriter(filename, System.Text.Encoding.UTF8);
xr.Formatting = Formatting.Indented;
xr.WriteStartDocument();
if (man.p_xmlns == null || man.p_xmlns_imsmd == null || man.p_xmlns_xsi == null || man.p_xmlns_adlcp == null || man.p_xsi_schemaLocation == null)
{
MessageBox.Show("Manifest Form Error", "Please Compile Every Field", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
manform = new ManifestForm(man);
man.FormMan = manform;
man.FormMan.Show();
}
else
{
xr.WriteStartElement(treeView2.Nodes[0].Text);
xr.WriteStartAttribute("xmlns");
xr.WriteValue(man.p_xmlns);
xr.WriteEndAttribute();
xr.WriteStartAttribute("xmlns:imsmd");
xr.WriteValue(man.p_xmlns_imsmd);
xr.WriteEndAttribute();
xr.WriteStartAttribute("xmlns:xsi");
xr.WriteValue(man.p_xmlns_xsi);
xr.WriteEndAttribute();
xr.WriteStartAttribute("xmlns:adlcp");
xr.WriteValue(man.p_xmlns_adlcp);
xr.WriteEndAttribute();
xr.WriteStartAttribute("xmlns:schemalocation");
xr.WriteValue(man.p_xsi_schemaLocation);
xr.WriteEndAttribute();
}
foreach (TreeNode node in tv.Nodes)
{
saveNode(node.Nodes);
}
xr.WriteEndElement();
xr.Close();
}
private void saveNode(TreeNodeCollection tnc)
{
foreach (TreeNode node in tnc)
{
if (node.Tag == "organization") -> puo essere una soltanto...non ho problemi
{
xr.WriteStartElement(node.Text);
xr.WriteStartAttribute("id_organization");
xr.WriteValue(org.p_id_organization);
xr.WriteEndAttribute();
xr.WriteStartAttribute("channel_type");
xr.WriteValue(org.p_channel_organization);
xr.WriteEndAttribute();
xr.WriteStartAttribute("struct_organization");
xr.WriteValue("hierarchical");
xr.WriteEndAttribute();
xr.WriteElementString("title", org.p_title_organization);
saveNode(node.Nodes);
xr.WriteEndElement();
}
else if (node.Text == "item") -> qui ho problemi dato che gli item possono essere n e quando vado a salvare il file xml in tutti gli item ottengo gli stessi valori(tutti hanno i valori dell ultimo item editato)
{
xr.WriteStartElement(node.Text);
xr.WriteStartAttribute("id_item");
xr.WriteValue(item.p_id_item);
xr.WriteEndAttribute();
xr.WriteStartAttribute("ref_element");
xr.WriteValue(item.p_refelem_item);
xr.WriteEndAttribute();
xr.WriteElementString("title", item.p_title_item);
saveNode(node.Nodes);
xr.WriteEndElement();
}
}