Creo que no me explique muy bien jejeje, veréis tengo que modificar un único kml para que todas las marcas de posición tengan el mismo estilo de "bocadillo" al pinchar en ellas, ya que vienen con el de defecto (fondo blanco, sin imagen, feo vamos...).
Dispongo de otro kml que hice en su día como plantilla con un estilo más coqueto, es por esto que se me ocurrió hacer un programilla en VBA para añadir este estilo a todas las marcas del kml "sosete", pero siendo sinceros, es un poco chapuza (localizo el fichero, el texto a cambiar, y le introduzco mi texto con replace, pero me modifica nodos que no tiene que modificar además de otros fallos).
Morta tu solución creo que me puede ayudar, me lo podrías detallar un poco más por favor?.
_polifemo me voy a poner a buscar información sobre modificar como un xml ya que como bien dices, puede ser la alternativa, aunque estoy un poco verde jejeje.
maquito tu solución me ha servido en parte, pero no ha modificado las marcas tal y como deseaba, aún así gracias por tu respuesta por que sé que más adelante le voy a dar uso!.
Opino que el método de Morta es el mas cómodo y recomendable.
Suponiendo que no te valga esa opción tienes la clase XmlReader en msdn.microsoft.com/ ....xmlreader que al menos está bajo .Net, aunque no estoy seguro de que en VBA esté implementada (si no lo está, descárgate gratuitamente de la web oficial el último VB.Net).
En la misma página hay tutoriales muy buenos donde te explica como leer un archivo xml. Seguro que hay otro donde explica como modificar el contenido de cada nodo.
No obstante me sumo al comentario de Morta, tampoco tengo claro que necesitas hacer. Cuando dices "cambiar el estilo de las plantillas para los Placemark de un Kml", ¿a que te refieres exáctamente?. ¿Solo necesitas cambiar los valores de los nodos o quieres cambiar los nodos en si.?
'abro el ficher kml que quiero
Xml.Load("C:\fichero.kml")
'busco el nodo que quiero del kml
NodeList = Xml.GetElementsByTagName("color")
'hago un for para poder llegar al valor del nodo que quiero cambiar
For Each Node In NodeList
With Node
NodeList2 = .ChildNodes
For Each Node2 In NodeList2
Node2.Value = "ff0000ff"
Next
End With
Next
'vuelvo a guardar el documento
Xml.Save("C:\fichero.kml")
'vuelvo a abrir el fichero con el googleearth
GE.AddFeature("C:\fichero.kml")
******
eso es todo pero ahora se me plantea otra dificultad, al abrir asi los KML se me quedan en la carpeta lugares temporales, y al cerrar GoogleEarth me sale la ventana de si desea guardar el lugar y no quiero que salga ninguna ventana, y menos guardarlo porque entonces esto no funcionaria porque, os comento, lo que yo hago es modificar el... Leer más ...