Problema con XML

venerdì 30 novembre 2007 - 10.48

Gemini Profilo | Expert

Ciao a tutti,
ho un problema quando vado a modificare o scrivere un file xml.
La creazione o modifica di un nodo va bene, solo che mi cambia l'ordine dei nodi.
Esempio:
se ho
<progetti>
<progetto id="1" titolo="11" n_img="2">
<voce id="2" img_pic="anteprime_vendite/11/photo_1_2_pic.jpg" big="anteprime_vendite/11/photo_1_2.jpg" descr="2" />
<voce id="1" img_pic="anteprime_vendite/11/photo_1_1_pic.jpg" big="anteprime_vendite/11/photo_1_1.jpg" descr="11" />
</progetto>
<progetto id="2" titolo="22" n_img="0"></progetto>
</progetti>

se vado a modificae il nodo voce con id=1 mi modifica il file in questo modo:
<progetti>
<progetto id="2" titolo="2" n_img="0" />
<progetto id="1" titolo="11" n_img="2">
<voce id="2" img_pic="anteprime_vendite/11/photo_1_2_pic.jpg" big="anteprime_vendite/11/photo_1_2.jpg" descr="2" />
<voce id="1" img_pic="anteprime_vendite/11/photo_1_1_pic.jpg" big="anteprime_vendite/11/photo_1_1.jpg" descr="11" />
</progetto>
</progetti>

Perchè?
Dato che il file xml viene letto da un file flash ho necessità di mantenere l'oridine.
Grazie

alx_81 Profilo | Guru

>Ciao a tutti,
Ciao!

>ho un problema quando vado a modificare o scrivere un file xml.
>La creazione o modifica di un nodo va bene, solo che mi cambia
>l'ordine dei nodi.
>Esempio:
>se ho
><progetti>
> <progetto id="1" titolo="11" n_img="2">
><voce id="2" img_pic="anteprime_vendite/11/photo_1_2_pic.jpg"
>big="anteprime_vendite/11/photo_1_2.jpg" descr="2" />
><voce id="1" img_pic="anteprime_vendite/11/photo_1_1_pic.jpg"
>big="anteprime_vendite/11/photo_1_1.jpg" descr="11" />
> </progetto>
> <progetto id="2" titolo="22" n_img="0"></progetto>
></progetti>
>
>se vado a modificae il nodo voce con id=1 mi modifica il file
>in questo modo:
><progetti>
> <progetto id="2" titolo="2" n_img="0" />
> <progetto id="1" titolo="11" n_img="2">
><voce id="2" img_pic="anteprime_vendite/11/photo_1_2_pic.jpg"
>big="anteprime_vendite/11/photo_1_2.jpg" descr="2" />
><voce id="1" img_pic="anteprime_vendite/11/photo_1_1_pic.jpg"
>big="anteprime_vendite/11/photo_1_1.jpg" descr="11" />
> </progetto>
></progetti>
>
>Perchè?
dovresti postare il codice che crea l'xml..

>Dato che il file xml viene letto da un file flash ho necessità
>di mantenere l'oridine.
Capisco
>Grazie
di nulla!

Alx81 =)

http://blogs.dotnethell.it/suxstellino

Gemini Profilo | Expert

Questo è il codice per inserire e modificare un nodo:

private void insVenditaGalleryXml(string id,string str_titolo)
{
//carica il documento
string file_xml=Server.MapPath(cs.FileXmlVenditeGalleryAdmin);

XmlDocument doc = new XmlDocument();
doc.Load(file_xml);

//Accede al nodo categoria
XmlElement nodo = doc.CreateElement("progetto");

XmlAttribute attr_id = doc.CreateAttribute("id");
attr_id.Value = id;
nodo.Attributes.SetNamedItem(attr_id);

XmlAttribute attr_titolo = doc.CreateAttribute("titolo");
attr_titolo.Value =str_titolo;
nodo.Attributes.SetNamedItem(attr_titolo);

XmlAttribute attr_n_img = doc.CreateAttribute("n_img");
attr_n_img.Value = "0";
nodo.Attributes.SetNamedItem(attr_n_img);

doc.DocumentElement.AppendChild(nodo);

doc.Save(file_xml);
}

private void modVenditaGalleryXml(string id,string str_titolo)
{
//Aggiornamento del nodo
string file_xml=Server.MapPath(cs.FileXmlVenditeGalleryAdmin);

XmlDocument doc = new XmlDocument();
doc.Load(file_xml);

XmlNode nodoVendita = doc.DocumentElement.SelectSingleNode("progetto[@id='" + id + "']");

if (nodoVendita!=null)
{
nodoVendita.Attributes["titolo"].Value = str_titolo;

doc.Save(file_xml);
}
}
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5