none
Como leer un archivo xml RRS feed

  • Pregunta

  • Hola
    Tengo un archivo xml asi:

     

    <?xml version="1.0" standalone="yes"?>
    <labels>
     <label _FORMAT="C:\ABC\labels\STDA4S01.lbl" _QUANTITY="3" _DUPLICATES="1" _PRINTERNAME="Impresora_CAB">
        <variable name="ARTICULO">myarticulo</variable>
        <variable name="TEXT">mytext</variable>
        <variable name="DESCR">mydescr</variable>
      </label>
    </labels>

     

    y debo obtener los valores de

     _PRINTERNAME, ARTICULO y  TEXT

     

    el código empleado es el siguiente (en avr .net)

     

    try
     xtr = *New XmlTextReader('C:\ABC\watch\trigger2uno\mytestfilexml.xml')
    catch Error System.Exception
     msgbox Error.ToString()
    endtry
     
    DoWhile xtr.Read()  
     If xtr.NodeType = xmlNodetype.Element
      MsgBox "Element :" + xtr.Name  + ' Value= '  + xtr.Value 
       
      //gestion de atributos
      If xtr.AttributeCount > 0     
       DoWhile xtr.MoveToNextAttribute()
        MsgBox "Atrib= " +  xtr.Name + ' Value= '  + xtr.Value 

    ...........

     

    El problema es que con el msgbox obtengo


     Atrib="name" Value="ARTICULO"

    cuando leo el xml :  <variable name="ARTICULO">myarticulo</variable>  

     

    Pero yo queiro obtener el valor  "myarticulo"  pero no se como
     
    Yo quisiera obtener algo asi como  Atrib="name" Value="ARTICULO"  valor="myarticulo"

     

    Alguien puede ayudarme?

     

    Muchas gracias 

    martes, 13 de mayo de 2008 21:39

Respuestas

  • Hola,

     

    prueba asi:

     

    XmlDocument doc = new XmlDocument();

     

    doc.Load("rutaFichero");

     

    XmlNode nodo1 = doc.SelectSingleNode("/labels/label");

     

    XmlAttribute atributo = nodo1.Attributes["_PRINTERNAME"];

     

    string valor1 = atributo.InnerText;

     

    XmlNode nodo2 = doc.SelectSingleNode("/labels/label/variable[name='ARTICULO']");

     

    string valor2 = nodo2.InnerText;

     

    XmlNode nodo3 = doc.SelectSingleNode("/labels/label/variable[name='TEXT']");

     

    string valor3 = nodo2.InnerText;

     

    saludos.

     

    Colabora con el foro: Si este mensaje te es de utilidad marcalo como respuesta.

    Javier Conesa

    MCP - Analista Programador

    Web: http://www.moreplus.es/index.aspx


    miércoles, 14 de mayo de 2008 10:57
    Moderador