Ho un file xml con questa struttura (semplificata)
io debbo:codice:<MapWindow> <GeneralProperties></GeneralProperties> <CoordinateSystem></CoordinateSystem> <MapLayers> <PolygonLayer> <GeneralLayerProperties> <Name>Buildings</Name> <Visible>0</Visible> </GeneralLayerProperties> </PolygonLayer> <PolygonLayer> <GeneralLayerProperties> <Name>World Countries</Name> <Visible>0</Visible> </GeneralLayerProperties> </PolygonLayer> </MapLayers> </MapWindow>
1) leggere il file da disco
2) per un certo layer di nome 'World Countries' debbo modificare la proprietà Visible
ho fatto questo codice che parrebbe funzionare. Chiedo se si può fare meglio :master:
codice:Sub ModificaMwxFile(ByVal mwxFile As String) 'utilizzo il dom Dim xmlDoc As New XmlDocument() 'carico l'xml da file xmlDoc.Load(mwxFile) 'accedo alla radice Dim radice As XmlElement = xmlDoc.DocumentElement For Each layer As XmlElement In radice.GetElementsByTagName("MapLayers") For Each polygonLayer As XmlElement In layer.GetElementsByTagName("PolygonLayer") For Each generalLayerPropertie As XmlElement In polygonLayer.GetElementsByTagName("GeneralLayerProperties") Dim nodo As XmlNode = generalLayerPropertie.ChildNodes(0) If nodo.InnerText = "World Countries" Then 'PrintLn(nodo.InnerText, nodo.Name) 'generalLayerPropertie.ChildNodes(1).InnerText = "0" generalLayerPropertie.ChildNodes(1).InnerText = SE(generalLayerPropertie.ChildNodes(1).InnerText = "0", "1", "0") End If Next Next Next xmlDoc.Save(mwxFile) End Sub![]()
![]()

Rispondi quotando
non speravo di meglio. Ti ringrazio dei suggerimenti. Ciao 