Añadir informacion a un XML

19/06/2005 - 19:33 por Javier | Informe spam
Hola:
Tengo un archivo XML de tipo RSS, con la estructura siguiente
<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">
<channel>
<title></title>
<description></description>
<link></link>
<lastBuildDate></lastBuildDate>
<generator />
<item>
<title></title>
<link></link>
<description></description>
<author></author>
<pubDate></pubDate>
</item>
</channel>
</rss>

Mi intencion es abrir un fichero asi, y añadirle un nuevo <item> con sus
etiquetas title, link, etc.
Me gustaria saber cual seria la forma mas sencilla de hacer eso, porque lo
he estado intentado y solo consigo codigo lioso que al final no hace lo q
quiero.
Gracias por la informacion.
Un saludo.

Preguntas similare

Leer las respuestas

#1 Miguel Gonzalez
19/06/2005 - 21:26 | Informe spam
Hola Javier.

Más o menos, el procedimiento pasa por utilizar el "Microsoft.XMLDom", cargar el archivo XML/RSS e
ir agregando nodos e hijos al documento. Puedes adaptar y embeber el siguiente código de ejemplo en
un archivo ASP o utilizarlo mediante algún componente o rutina en VB.



<%
Dim xml1, root1, nodo0, nodo1, nodo2
Set xml1 = Server.CreateObject("Microsoft.XMLDom")
xml1.async = False
xml1.validateOnParse = False
xml1.load(Server.MapPath("fuenterss.xml"))
Set root1 = xml1.documentElement
root1.selectSingleNode("channel/pubDate").text = "Fecha publicación de la fuente RSS"
root1.selectSingleNode("channel/lastBuildDate").text = "Ultima actualizacion RSS"
Set nodo0 = root1.selectSingleNode("channel")
Set nodo1 = xml1.createElement("item")
nodo0.appendChild(nodo1)
Set nodo2 = xml1.createElement("title")
nodo1.appendChild(nodo2)
nodo2.text = "título de la noticia"
Set nodo2 = xml1.createElement("link")
nodo1.appendChild(nodo2)
nodo2.text = "http://www.tuserver.com/tunoticia.html"
Set nodo2 = xml1.createElement("pubDate")
nodo1.appendChild(nodo2)
nodo2.text = "Fecha de la noticia"
Set nodo2 = xml1.createElement("description")
nodo1.appendChild(nodo2)
nodo2.text = "Resumen de la noticia"
xml2.save(Server.MapPath("fuenterss.xml"))
Set nodo2 = Nothing
Set nodo1 = Nothing
Set nodo0 = Nothing
Set root1 = Nothing
Set xml1 = Nothing
%>

Saludos!
Miguel

Javier escribió:
Hola:
Tengo un archivo XML de tipo RSS, con la estructura siguiente
<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">
<channel>
<title></title>
<description></description>
<link></link>
<lastBuildDate></lastBuildDate>
<generator />
<item>
<title></title>
<link></link>
<description></description>
<author></author>
<pubDate></pubDate>
</item>
</channel>
</rss>

Mi intencion es abrir un fichero asi, y añadirle un nuevo <item> con sus
etiquetas title, link, etc.
Me gustaria saber cual seria la forma mas sencilla de hacer eso, porque lo
he estado intentado y solo consigo codigo lioso que al final no hace lo q
quiero.
Gracias por la informacion.
Un saludo.
Respuesta Responder a este mensaje
#2 Enrique
21/06/2005 - 14:31 | Informe spam
Hola Javier,
Una opcion es el usar el DOM para poder aniadir los nodos que tu quieres, la
siguiente opcion es que lenguaje usaras (java, vb, asp, etc, etc.)
El ejemplo que te doy es de Java pero lo puede modificar facilmente a VB u
otro lenguaje:
Paso uno es el definir el documento xml (Objeto - myDoc),
paso 2 navegas al channel (objeto myChannel) nodo
...
Element myItem = myDoc.createElement ("item");
myChannel.appendChild (myItem);
Element myElement = myDoc.createElement ("title");
myItem.appendChild (myElement);
Text myText = myDoc.createTextNode ("OCTOPUS");
myElement.appendChild (myText);
Element myLink = myDoc.createElement ("Link");
myItem.appendChild (myLink);
...

"Javier" wrote:

Hola:
Tengo un archivo XML de tipo RSS, con la estructura siguiente
<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">
<channel>
<title></title>
<description></description>
<link></link>
<lastBuildDate></lastBuildDate>
<generator />
<item>
<title></title>
<link></link>
<description></description>
<author></author>
<pubDate></pubDate>
</item>
</channel>
</rss>

Mi intencion es abrir un fichero asi, y añadirle un nuevo <item> con sus
etiquetas title, link, etc.
Me gustaria saber cual seria la forma mas sencilla de hacer eso, porque lo
he estado intentado y solo consigo codigo lioso que al final no hace lo q
quiero.
Gracias por la informacion.
Un saludo.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida