Foros del Web » Programación para mayores de 30 ;) » .NET »

¿Como leo una etiqueta especifica de un archivo xml en C#?

Estas en el tema de ¿Como leo una etiqueta especifica de un archivo xml en C#? en el foro de .NET en Foros del Web. Hola estoy creando un programa en C# donde necesito que me lea una etiqueta especifica en XML, yo he visto tutoriales pero en todos explican ...
  #1 (permalink)  
Antiguo 21/01/2016, 18:26
 
Fecha de Ingreso: julio-2015
Mensajes: 24
Antigüedad: 8 años, 8 meses
Puntos: 0
Pregunta ¿Como leo una etiqueta especifica de un archivo xml en C#?

Hola estoy creando un programa en C# donde necesito que me lea una etiqueta especifica en XML, yo he visto tutoriales pero en todos explican como leer el archivo entero pero yo quiero utilizar el XML como si fuera un archivo properties, osea que lea una etiqueta especifica y el valor de esa etiqueta me lo ponga en un textbox.
Porfavor alguien digame.
  #2 (permalink)  
Antiguo 21/01/2016, 20:39
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 2 meses
Puntos: 52
Respuesta: ¿Como leo una etiqueta especifica de un archivo xml en C#?

Si el XML tiene un esquema definido y estático siempre te conviene deserializarlo y usar un modelo estáticamente tipado.

Si el XML NO tiene un esquema definido y estático podes usar LINQ to XML.
  #3 (permalink)  
Antiguo 29/01/2016, 12:17
 
Fecha de Ingreso: marzo-2007
Mensajes: 129
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: ¿Como leo una etiqueta especifica de un archivo xml en C#?

XML Ejemplo:
<? xml version="1.0"?>
<!DOCTYPE MENSAJE SYSTEM "respuesta.dtd">
<respuesta>
<usuarios>
<usuario>
<nombre></nombre>
<apellido></apellido>
</usuairo>
</usuarios>
</respuesta>

Código:
String xml = "Codigo xml aqui";
//Creas un nueva nueva variable de documentoXML
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xml);
//Seleccionas los nodos de xml del nivel que desees dependiendo de la estructura de tu xml. en este caso los nodos usuario
XmlNodeList usuarios = xmlDoc.DocumentElement.SelectNodes("/respuesta/usuarios");
// recorres cada elemnto de la lista de nodos. 
 foreach (XmlNode usuario in usuarios)
{
// recorres cada propiedad de cada elemento del xml (usuario)
     foreach (XmlNode titleNode in usuario)
      {
               titleNode.Name // es el nombre del xml tag (nombre, apellido)
               titleNode.InnerText // es el valor que tiene ese xml tag
      }
}

Este codigo snippet deberia ayudarte. Si no entiendes algo avisame.
__________________
Software Analyst and developer
http://ebalestrini.com
  #4 (permalink)  
Antiguo 31/01/2016, 14:17
 
Fecha de Ingreso: julio-2015
Mensajes: 24
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: ¿Como leo una etiqueta especifica de un archivo xml en C#?

Te entiendo, pero lo que quiero es algo como esto mira:
Aqui esta el codigo XML
Código XML:
Ver original
  1. <xml version="1.0" enconding="utf-8">
  2.  <español>
  3.      <home>
  4.          <cnm id="BtNMod" text="Crear Nuevo Mod"/>
  5.          <cbe id="lblAuthor" text="Creado por MCPE Resource Maker Team"/>
  6.      </home>
  7.      
  8.      <project_manager>
  9.          <cnp id="btnCreateNewProject" text="Crear Nuevo Proyecto"/>
  10.          <impp id="btnCreateNewProject" text="Importar Proyecto"/>
  11.      </project_manager>
  12.      
  13.      <new_project>
  14.          <np id="lblNewProject" text="Nuevo Proyecto"/>
  15.          <projname id="lblProjectName" text="Nombre del Proyecto"/>
  16.          <aun id="lblProjectName" text="Nombre del Autor"/>
  17.          <pver id="lblVersion" text="Version"/>
  18.          <bcp id="btnCreateProject" text="Crear Proyecto">
  19.      </new_project>
  20.      
  21.      <feditor>
  22.         <tfile>
  23.          <tsv id="SaveToolStripMenuItem" text="Guardar"/>
  24.          <tcl id="CloseToolStripMenuItem" text="Cerrar"/>
  25.         </tfile>
  26.        
  27.         <tedi>
  28.          <tro id="RedoToolStripMenuItem" text="Rehacer [Ctrl + Z]"/>
  29.          <tundo id="UndoToolStripMenuItem" text="Deshacer [Ctrl + Alt + Z]" />
  30.         </tedit>
  31.        
  32.         <tabout>
  33.          <tlicen id="LicenseToolStripMenuItem" text="License"/>
  34.          </tabout>
  35.      </feditor>
  36.  </español>
  37. </xml>

Entonces quiero que en el form 1 vea todas las etiquetas de home, y que el dato de el valor Text de las etiquetas dentro de home, yo lo ponga a un Label o a un boton es como si fuera para traducir
  #5 (permalink)  
Antiguo 07/02/2016, 17:49
 
Fecha de Ingreso: julio-2015
Mensajes: 24
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: ¿Como leo una etiqueta especifica de un archivo xml en C#?

Cita:
Iniciado por ernestobalestrini Ver Mensaje
XML Ejemplo:
<? xml version="1.0"?>
<!DOCTYPE MENSAJE SYSTEM "respuesta.dtd">
<respuesta>
<usuarios>
<usuario>
<nombre></nombre>
<apellido></apellido>
</usuairo>
</usuarios>
</respuesta>

Código:
String xml = "Codigo xml aqui";
//Creas un nueva nueva variable de documentoXML
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xml);
//Seleccionas los nodos de xml del nivel que desees dependiendo de la estructura de tu xml. en este caso los nodos usuario
XmlNodeList usuarios = xmlDoc.DocumentElement.SelectNodes("/respuesta/usuarios");
// recorres cada elemnto de la lista de nodos. 
 foreach (XmlNode usuario in usuarios)
{
// recorres cada propiedad de cada elemento del xml (usuario)
     foreach (XmlNode titleNode in usuario)
      {
               titleNode.Name // es el nombre del xml tag (nombre, apellido)
               titleNode.InnerText // es el valor que tiene ese xml tag
      }
}

Este codigo snippet deberia ayudarte. Si no entiendes algo avisame.
Si, pero lo que quiero es que guarde en una variable lo que esta dentro de una etiqueta especifica y que la pueda poner como el texto de un boton o label.

Etiquetas: especifica, etiqueta, textbox, valor, xml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:45.