Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Problemi aggiungere nodo file xml con c#
lunedì 09 gennaio 2006 - 11.45
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
alecomo
Profilo
| Junior Member
79
messaggi | Data Invio:
lun 9 gen 2006 - 11:45
la struttura del mio file xml è la seguente:
manifest -> root
organizations ->child 1
organization -> grandchild 1
item -> grandgrandchild 1
resources -> child 2
resource -> grandchild1
per aggiungere il nodo organization non ho problemi...i problemi sorgono quando devo inserire gli oggettti item...
questo è il frammento di codice che nn funziona il quale dovrebbe inserire il nodo item sotto il nodo organization
aiutatemi!!
string path = @"c:\data\imsmanifest.xml";
//carico file xml
XmlDocument Doc = new XmlDocument();
Doc.Load(path);
XmlNode NodeItem;
XmlNode currNode;
XmlNodeList insNodeList = Doc.GetElementsByTagName("Organization");
NodeItem = Doc.CreateNode(XmlNodeType.Element,"Item","");
MessageBox.Show("OK1");
//inserisce il nodo organization sotto il nodo organizations
currNode = insNodeList[0].ChildNodes[1].InsertAfter(NodeItem,insNodeList[0].ChildNodes[1].ChildNodes[0]);
MessageBox.Show("OK2");
currNode.InnerText = Item_Title.Text;
MessageBox.Show("OK3");
//aggiungo attributo
XmlAttribute Identifier_Item = Doc.CreateAttribute("Identifier");
MessageBox.Show("ok4");
Identifier_Item.Value = Item_Id.Text;
NodeItem.Attributes.Append(Identifier_Item);
MessageBox.Show("ok5");
XmlAttribute Ref_Item = Doc.CreateAttribute("Referenced Element");
MessageBox.Show("ok3");
Ref_Item.Value = Item_Ref.Text;
NodeItem.Attributes.Append(Ref_Item);
MessageBox.Show("ok4");
//salvo le modifiche
Doc.Save(path);
alecomo
Profilo
| Junior Member
79
messaggi | Data Invio:
lun 9 gen 2006 - 18:36
si item è figlio di organization...
ma dove devo inserire quella riga?devo sostituirla a questa?
currNode = insNodeList[0].ChildNodes[1].InsertAfter(NodeItem,insNodeList[0].ChildNodes[1].ChildNodes[0]);
io ho problemi su questa stringa...mi sai dire dove sbaglio?
grazie!!
alecomo
Profilo
| Junior Member
79
messaggi | Data Invio:
mar 10 gen 2006 - 11:17
GRAzie ho risolto...
ora il problema è un altro...voglio inserire il nodo item esclusivamente dove dico io...mi spiego meglio
il nodo organzation ha un attributo IDENTIFIER...suppondendo di avere 3 organization rispettibvamente con id = 1 , 2 , 3 io voglio inserire l'item nel nodo org avente come id 2..
come posso fare?
grazie!!
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mar 10 gen 2006 - 13:56
>GRAzie ho risolto...
>ora il problema è un altro...voglio inserire il nodo item esclusivamente
>dove dico io...mi spiego meglio
>il nodo organzation ha un attributo IDENTIFIER...suppondendo
>di avere 3 organization rispettibvamente con id = 1 , 2 , 3
> io voglio inserire l'item nel nodo org avente come id 2..
>come posso fare?
>grazie!!
Ci sono vari metodi, puoi enumerare i nodi con un for each e quando vedi che c'è quello che vuoi tu (con id=2) aggiungere il nodo.
ciao
David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
alecomo
Profilo
| Junior Member
79
messaggi | Data Invio:
mer 11 gen 2006 - 10:30
io proprio nn riesco a risolvere...
allora il mio xml è cosi fatto:
<manifest>
<organizations>
<organization org_id="A0">
<item>
<item>
</organization>
<organization org_id="B6">
</organization>
</organizations>
</manifest>
XmlNode NodeItem;
XmlElement root;
//Create an XmlNamespaceManager for resolving namespaces.
XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace"org_id", "
http://www.imsproject.org/xsd/imscp_rootv1p1p2"
);
//prendo il nodo sotto cui aggiungere item
root = doc.DocumentElement;
XmlNode node = root.SelectSingleNode("descendant::Organization[@org_id = identifier.text]", nsmgr);
NodeItem = Doc.CreateNode(XmlNodeType.Element,"Item","");
MessageBox.Show("OK1");
//inserisce il nodo item sotto il nodo organization
currNode = node.AppendChild(NodeItem);
è giusta la sintassi??io devo scegliere l'organizzazione in base alla richiesta dell'utente che ottengo con la var identifier.text
aiutatemi!!vi prego!!!
Torna su
Stanze Forum
Elenco Threads
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 !