none
Linq to Xml RRS feed

  • Pregunta

  • Hola

    Quisiera cargar un combobox mediante un archivo xml, tengo este codigo que no me esta funcionando

    XElement xmlPeriodo = XElement.Load(@"D:\XmlDocuments\Periodos.xm");
                var Periodo =
                 from c in xmlPeriodo.Descendants("Periodo")
                 select new Periodo { c.Element("Periodo_Id").Value, c.Element("Periodo").Value };
                return Periodo.ToLis;
    private List<PeriodoEntity> CargarPeriodo()
            {
                XElement xmlPeriodo = XElement.Load(@"D:\XmlDocuments\Periodos.xm");
                var Periodo =
                 from c in xmlPeriodo.Descendants("Periodo")
                 select new Periodo { c.Element("Periodo_Id").Value, c.Element("Periodo").Value };
                return Periodo.ToLis;


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú


    jueves, 25 de abril de 2013 15:37

Respuestas

  • hola

    en esta linea

    select new Periodo { c.Element("Periodo_Id").Value, c.Element("Periodo").Value };

    donde asignas las propiedades

    select new Periodo {

    id= c.Element("Periodo_Id").Value,

    periodo = c.Element("Periodo").Value };

    Nota: las propeidades pr supuesto las invente debes poner las correctas

    ----

    ademas la estructura del xml como seria ?

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Pedro Ávila jueves, 25 de abril de 2013 18:18
    jueves, 25 de abril de 2013 15:49
  • pero aqui

    <Periodos>
        <periodo_id>200701</periodo_id>
        <periodo>ENERO</periodo>
      </Periodos>

    veo que se llama Periodos en plural

    pero estas usando

    xmlPeriodo.Descendants("Periodo")

    en singular


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Pedro Ávila jueves, 25 de abril de 2013 18:18
    jueves, 25 de abril de 2013 15:59
  • recuerda que los tag son keysensitive

    aqui

    <Periodos>
        <periodo_id>200701</periodo_id>
        <periodo>ENERO</periodo>
      </Periodos>

    pones periodo_id y periorod en minuscula

    en tu codigo lo pones en mayuscula

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Pedro Ávila jueves, 25 de abril de 2013 18:17
    jueves, 25 de abril de 2013 18:10

Todas las respuestas

  • hola

    en esta linea

    select new Periodo { c.Element("Periodo_Id").Value, c.Element("Periodo").Value };

    donde asignas las propiedades

    select new Periodo {

    id= c.Element("Periodo_Id").Value,

    periodo = c.Element("Periodo").Value };

    Nota: las propeidades pr supuesto las invente debes poner las correctas

    ----

    ademas la estructura del xml como seria ?

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Pedro Ávila jueves, 25 de abril de 2013 18:18
    jueves, 25 de abril de 2013 15:49
  • Este es mi archivo xml 

    <?xml version="1.0" standalone="yes"?>
    <DocumentElement>
      <Periodos>
        <periodo_id>200701</periodo_id>
        <periodo>ENERO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200702</periodo_id>
        <periodo>FEBRERO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200703</periodo_id>
        <periodo>MARZO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200704</periodo_id>
        <periodo>ABRIL</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200705</periodo_id>
        <periodo>MAYO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200706</periodo_id>
        <periodo>JUNIO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200707</periodo_id>
        <periodo>JULIO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200708</periodo_id>
        <periodo>AGOSTO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200709</periodo_id>
        <periodo>SEPTIEMBRE</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200710</periodo_id>
        <periodo>OCTUBRE</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200711</periodo_id>
        <periodo>NOVIEMBRE</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200712</periodo_id>
        <periodo>DICIEMBRE</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200801</periodo_id>
        <periodo>ENERO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200802</periodo_id>
        <periodo>FEBRERO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200803</periodo_id>
        <periodo>MARZO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200804</periodo_id>
        <periodo>ABRIL</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200805</periodo_id>
        <periodo>MAYO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200806</periodo_id>
        <periodo>JUNIO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200807</periodo_id>
        <periodo>JULIO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200808</periodo_id>
        <periodo>AGOSTO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200809</periodo_id>
        <periodo>SEPTIEMBRE</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200810</periodo_id>
        <periodo>OCTUBRE</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200811</periodo_id>
        <periodo>NOVIEMBRE</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200812</periodo_id>
        <periodo>DICIEMBRE</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200901</periodo_id>
        <periodo>ENERO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200902</periodo_id>
        <periodo>FEBRERO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200903</periodo_id>
        <periodo>MARZO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200904</periodo_id>
        <periodo>ABRIL</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200905</periodo_id>
        <periodo>MAYO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200906</periodo_id>
        <periodo>JUNIO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200907</periodo_id>
        <periodo>JULIO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200908</periodo_id>
        <periodo>AGOSTO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200909</periodo_id>
        <periodo>SEPTIEMBRE</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200910</periodo_id>
        <periodo>OCTUBRE</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200911</periodo_id>
        <periodo>NOVIEMBRE</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>200912</periodo_id>
        <periodo>DICIEMBRE</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201001</periodo_id>
        <periodo>ENERO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201002</periodo_id>
        <periodo>FEBRERO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201003</periodo_id>
        <periodo>MARZO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201004</periodo_id>
        <periodo>ABRIL</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201005</periodo_id>
        <periodo>MAYO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201006</periodo_id>
        <periodo>JUNIO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201007</periodo_id>
        <periodo>JULIO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201008</periodo_id>
        <periodo>AGOSTO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201009</periodo_id>
        <periodo>SEPTIEMBRE</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201010</periodo_id>
        <periodo>OCTUBRE</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201011</periodo_id>
        <periodo>NOVIEMBRE</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201012</periodo_id>
        <periodo>DICIEMBRE</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201101</periodo_id>
        <periodo>ENERO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201102</periodo_id>
        <periodo>FEBRERO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201103</periodo_id>
        <periodo>MARZO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201104</periodo_id>
        <periodo>ABRIL</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201105</periodo_id>
        <periodo>MAYO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201106</periodo_id>
        <periodo>JUNIO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201107</periodo_id>
        <periodo>JULIO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201108</periodo_id>
        <periodo>AGOSTO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201109</periodo_id>
        <periodo>SEPTIEMBRE</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201110</periodo_id>
        <periodo>OCTUBRE</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201111</periodo_id>
        <periodo>NOVIEMBRE</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201112</periodo_id>
        <periodo>DICIEMBRE</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201201</periodo_id>
        <periodo>ENERO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201202</periodo_id>
        <periodo>FEBRERO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201203</periodo_id>
        <periodo>MARZO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201204</periodo_id>
        <periodo>ABRIL</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201205</periodo_id>
        <periodo>MAYO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201206</periodo_id>
        <periodo>JUNIO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201207</periodo_id>
        <periodo>JULIO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201208</periodo_id>
        <periodo>AGOSTO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201209</periodo_id>
        <periodo>SEPTIEMBRE</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201210</periodo_id>
        <periodo>OCTUBRE</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201211</periodo_id>
        <periodo>NOVIEMBRE</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201212</periodo_id>
        <periodo>DICIEMBRE</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201301</periodo_id>
        <periodo>ENERO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201302</periodo_id>
        <periodo>FEBRERO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201303</periodo_id>
        <periodo>MARZO</periodo>
      </Periodos>
      <Periodos>
        <periodo_id>201304</periodo_id>
        <periodo>ABRIL</periodo>
      </Periodos>
    </DocumentElement>

    El código sería mas o menos así lo que pasa que soy novato en linq

      private List<PeriodoEntity> CargarPeriodo()
            {
                XElement xmldoc = XElement.Load(@"D:\XmlDocuments\Periodos.xm");
                List<PeriodoEntity> query = (from item1 in xmldoc.Elements("Periodo_Id"))
            }


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    jueves, 25 de abril de 2013 15:50
  • Leandro gracias por responder me faltaría ponerle el return

    private List<PeriodoEntity> CargarPeriodo()
            {
                XElement xmlPeriodo = XElement.Load(@"D:\XmlDocuments\Periodos.xm");
                var Periodo =
                 from c in xmlPeriodo.Descendants("Periodo")
                 select new PeriodoEntity 
                 { 
                     Periodo_Id = c.Element("Periodo_Id").Value,
                     Periodo = c.Element("Periodo").Value
                 };

    Si te refieres a la estructura me imagino que es el archivo xml que estoy mostrando


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    jueves, 25 de abril de 2013 15:56
  • pero aqui

    <Periodos>
        <periodo_id>200701</periodo_id>
        <periodo>ENERO</periodo>
      </Periodos>

    veo que se llama Periodos en plural

    pero estas usando

    xmlPeriodo.Descendants("Periodo")

    en singular


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Pedro Ávila jueves, 25 de abril de 2013 18:18
    jueves, 25 de abril de 2013 15:59
  • Gracias, pero falta un return para almacenar lo del barrido del xml

    algo como esto :

    private List<PeriodoEntity> CargarPeriodo()
            {
                XElement xmlPeriodo = XElement.Load(@"D:\XmlDocuments\Periodos.xml");
                var Periodo =
                 from c in xmlPeriodo.Descendants("Periodos")
                 select new PeriodoEntity 
                 { 
                     Periodo_Id = c.Element("Periodo_Id").Value,
                     Periodo = c.Element("Periodo").Value
                 };
    
                xmlPeriodo.Add(Periodo);
                return Periodo;
    Estoy improvisando en realidad no se como ponerlo


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú


    jueves, 25 de abril de 2013 16:06
  • Cuando lo ejecuto me sale el siguiente error


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    jueves, 25 de abril de 2013 17:58
  • recuerda que los tag son keysensitive

    aqui

    <Periodos>
        <periodo_id>200701</periodo_id>
        <periodo>ENERO</periodo>
      </Periodos>

    pones periodo_id y periorod en minuscula

    en tu codigo lo pones en mayuscula

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Pedro Ávila jueves, 25 de abril de 2013 18:17
    jueves, 25 de abril de 2013 18:10