Ciao a tutti,
si lo so, il titolo fa penama non sapevo sinceramente cosa scrivere
.
prova a spiegare cosa mi turba![]()
praticamente ho un file XML che potrebbe essere composto in questo modo:
dato questo file XML vorrei creare per ogni nodo "XUno/XDue" una lista contentecodice:<root> <XUno> <Uno nome="pippo" tipo="uomo" /> <Uno nome="pluto" tipo="uomo" /> <Uno nome="panzone" tipo="uomo" /> </XUno> <XDue> <Due nome ="pino" altezza="ciccio" larghezza="ooo" tipo="Boh" /> <Due nome ="pino" altezza="ciccio" larghezza="ooo" tipo="Boh" /> </XDue> </root>
gli oggetti Uno o Due dove gli attributi sono le proprietà degli oggetti Uno/Due.
questa è una bozza di come sto pensando di gestirlo questo file XML
codice:' Classe base che rappresenta i Nodi collection Public MustInherit Class myNodeCollection Inherits CollectionBase Protected _XmlDoc As Xml.XmlDocument Protected _XPath As String Public Sub New() _XmlDoc = New Xml.XmlDocument SetXPath() End Sub Public Overridable Function Add(ByVal pMyNode As myNode) Me.InnerList.Add(pMyNode ) End Function Public Function Load(ByVal XmlPath As String) _XmlDoc.Load(XmlPath ) If _XmlDoc.HasChildNodes Then Me.InnerList.Clear() SetCollectionObject(_XmlDoc.SelectNodes(Me._XPath)) End If End Function Public MustOverride Function GetXMLString() As String Protected MustOverride Sub SetCollectionObject(ByVal pNodeList As Xml.XmlNodeList) Protected MustOverride Sub SetXPath() End Class ' Classe base che rappresenta i Nodi singoli Public MustInherit Class myNode Public Nome As String End Class '------------------------------------------------------ ' Implementazione Nodo collection XUno '------------------------------------------------------ Public Class XUno Inherits myNodeCollection 'restituisce la lista dei nodi Uno Public Overrides Function GetXMLString() As String Dim elem As Xml.XmlElement Dim att As Xml.XmlAttribute Dim root As Xml.XmlElement _XmlDoc.RemoveAll() root = _XmlDoc.CreateElement("root") For Each _uno As Uno In InnerList elem = _XmlDoc.CreateElement("Uno") att = _XmlDoc.CreateAttribute("nome") att.Value = _uno.Nome elem.Attributes.Append(att) att = _XmlDoc.CreateAttribute("Tipo") att.Value = _uno.Tipo elem.Attributes.Append(att) root.AppendChild(elem) Next _XmlDoc.AppendChild(root) Return root.InnerXml End Function ' Imposta XPath di ricerca Protected Overrides Sub SetXPath() _XPath = "/root/XUno/*" End Sub ' Popola la collezione XUno Protected Overrides Sub SetCollectionObject(ByVal pNodeList As System.Xml.XmlNodeList) Dim ut As Uno For Each nd As Xml.XmlNode In pNodeList ut = New Uno ut.Name = nd.Attributes("Nome").Value ut.Description = nd.Attributes("Tipo").Value Me.InnerList.Add(ut) Next End Sub End Class ' Classe Uno Public Class Uno Inherits myNode public Tipo as string End Class
secondo voi va bene o mi sto facendo un mucchio di seghe mentali.
si accettano consigli e insulti
Ciao

ma non sapevo sinceramente cosa scrivere
Rispondi quotando
