Visual Basic.NET - XmlDocument

 
Vista:

XmlDocument

Publicado por Hector Perez (7 intervenciones) el 12/06/2008 23:31:42
Hola a todos

Tengo uan pregunta. Resulta que necesito manipular un archivo XML para actualizar su contenido, el problema en si es que no se exactamente o mas bien no se como posicionarme en un tag determinado y en ese tag agregar un nuevo elemento. Posteo parte del xml que requiero actualizar.

<?xml version="1.0" encoding="ISO-8859-15" ?>
- <lang>
- <ESPAÑOL>
- <frmPrueba1>
<lbl1>Esto es una prueba</lbl1>
<lbl2>¡Bienvenido!</lbl2>
</frmPrueba1>
- <frmPrueba2>
<lblFP1>Idiomatizacion de la etiqueta lblFP1 al español</lblFP1>
<lblFP2>Idiomatizacion de la etiqueta lblFP2 al español</lblFP2>
</frmPrueba2>
</ESPAÑOL>
- <INGLES>
- <frmPrueba1>
<lbl1>This is a test</lbl1>
<lbl2>Welcome!</lbl2>
</frmPrueba1>
- <frmPrueba2>
<lblFP1>English Translation of label lblFP1</lblFP1>
<lblFP2>English Translation of label lblFP2</lblFP2>
</frmPrueba2>
</INGLES>
</lang>

por decir, yo necesitaria posicionarme en "lang/ESPAÑOL/frmPrueba1" y sobre ese path insertar un nuevo elemento como este: "<lbl3>Prueba</lbl3>", he visto codigo que especifico el tag en el que me debo posicionar y ya, pero aqui el problema que yo tengo es que como tengo un "frmPrueba1" tanto en el tag "ESPAÑOL" como en el que se llama "INGLES" tendria en si 2 tags en donde insertar, como se realiza para este caso el posicionamiento en este path, asi un tipo XPath expression.

Anexo parte de mi codigo VB.

Dim xNEle As XmlElement
xNEle = xDoc.CreateElement(Element)
xNEle.InnerText = Value

xEle = xDoc.DocumentElement("ESPAÑOL")
xEle = xDoc.DocumentElement("frmPrueba1").AppendChild(xNEle)
xDoc.Save(path)

Este codigo me agrega el elemento pero sobre el path de "ESPAÑOL", como haria para agregarlo dentro de "frmPrueba1"


URGE!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:XmlDocument

Publicado por David Medina (8 intervenciones) el 13/06/2008 00:18:17
Dim xNodeTemp As System.Xml.XmlNode = Nothing
le haces un selectSingleNode sobre xNodeTemp...

xNodeTemp.AppendChild(xmlDoc.CreateTextNode("Hola"))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:XmlDocument

Publicado por Hector Perez (7 intervenciones) el 13/06/2008 20:29:53
Gracias por la ayuda. de hecho no he probado tu solucion, ya que ya encontre una forma que me parecio adecuada y con Xpath, la posteo aqui, de cualquier forma, probare lo que me dices y te digo. SOlo una pregunta que no se supone que con el select single node me trae por decir uno de los que encontro(es decir si hallo 3 me trae uno) si es asi como sabria si es precisamente del idioma que requiero, por ejemplo español

'FIltor los nodos a un path de Xpath
xNodes = xDoc.SelectNodes(pathXML)
'Creo un elemento nuevo en la ruta de xPath
xNEle = xDoc.CreateElement(Element)
'Asigno el texto que contendra
xNEle.InnerText = Value
'Agrego el elemento a mi XML
xNodes(0).AppendChild(xNEle)

Saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar