none
How read XML with Linq to XML?? RRS feed

  • Pregunta

  • Hi,

    How can read a XML whit the next three in Linq to XML?

    <element1>
     <element2>
      <element3>
       <element4>
        <atribut1 value=lkn>
        <atribut2 value=lkn>
       </element4>
      </element3>
      <element5>
       <element6>
        <atribut3 value=lkn>
        <atribut4 value=lkn>
       <element6>
        <atribut3 value=lkn>
        <atribut4 value=lkn>
       <element6>
        <atribut3 value=lkn>
        <atribut4 value=lkn>
       </element6>
      </element5>
     </element2>
    </element1>

    • Cambiado Fran Diaz miércoles, 27 de mayo de 2009 6:44 LINQ ([Loc]From:Lenguaje C#)
    miércoles, 27 de mayo de 2009 2:26

Todas las respuestas

  • hi,

    here you have several examples about the xml manipulation with linq:


    .NET Language-Integrated Query for XML Data

    LINQ to XML

    in these links you can found information about the xml, for example:

    Querying an XDocument vs. Querying an XElement

    greetings
    Leandro Tuttini

    Work: Iceberg Solutions
    Blog
    Buenos Aires
    Argentina
    jueves, 28 de mayo de 2009 17:23
  • hi,

    here you have several examples about the xml manipulation with linq:


    .NET Language-Integrated Query for XML Data

    LINQ to XML

    in these links you can found information about the xml, for example:

    Querying an XDocument vs. Querying an XElement

    greetings
    Leandro Tuttini

    Work: Iceberg Solutions
    Blog
    Buenos Aires
    Argentina

    Que tal Leandro, veo que eres de Argentina y por eso escribo en español.

    Ya me he leido la documentación de los links, pero... mi problema especifico y para el que aun no encuentro solución es:

    Como hago que mi consulta me arroge solo atributos agrupados especificicos, por ejemplo:
    <element1>
     <element2>
        <element3>
           <element4>
              <atribut1 value=lkn>
              <atribut2 value=lkn>
           </element4>
        </element3>
      <element5>
        <element6 value="1">
               <atribut3 value="hola">
                <atribut4 value="mundo">
         <element6 value="30">
               <atribut3 value="adios">
               <atribut4 value="a todos">
         <element6 value="80">
              <atribut3 value="de nuevo">
              <atribut4 value="hola">
                    <element10>
                         <atribut10 value="hola">
                         <atribut10 value="hola">
                   </element10>
       </element6>
      </element5>
     </element2>
    </element1>

    Si yo pongo mi query para buscar todos los atribut3 y atribut4 me arroja los 6 del ejemplo en lista, pero necesito que me mande por separado atrribut3 y atribut4 que corresponden a <element6 value="1"> y despues esos mismos atributos pero los que corresponden a <element6 value="30"> y al final los mismos atributos pero que correspondan a <element6 value="80">, además claro de los primeros atributos del doc atribut1 y atribut2.

    O será que Linq no tiene tanta flexibilidad y en vez de usar linq debo usar alguna hoja de estilo para xml?

    Espero sea mas amplia la pregunta.

    Gracias!!!
    miércoles, 3 de junio de 2009 7:31
  • hola,

    claro el tema es que si quieres recuperarlo por separado deberas hacer dos loops, seria una especie de group, o sea recuperas los element6, iteras por cada uno y teniendo la referencia de estos recuperas los atributos.

    aparte verifica si es correcta la jerarquia de los element6, ya que no veo que se cierren correctamente:

        <element6 value="1">
               <atribut3 value="hola">
                <atribut4 value="mundo">
         <element6 value="30">
               <atribut3 value="adios">
               <atribut4 value="a todos">
         <element6 value="80">
              <atribut3 value="de nuevo">
              <atribut4 value="hola">
                    <element10>
                         <atribut10 value="hola">
                         <atribut10 value="hola">
                   </element10>
       </element6>




    la identacion corrrecta que veo en base a tu ejemplos es:

        <element6 value="1">
            <atribut3 value="hola">
            <atribut4 value="mundo">
            <element6 value="30">
            <atribut3 value="adios">
            <atribut4 value="a todos">
            <element6 value="80">
            <atribut3 value="de nuevo">
            <atribut4 value="hola">
            <element10>
                <atribut10 value="hola">
                <atribut10 value="hola">
            </element10>
       </element6>


    o es que queria hacer algo asi:

        <element6 value="1">
            <atribut3 value="hola">
            <atribut4 value="mundo">
        </element6>
        <element6 value="30">
            <atribut3 value="adios">
            <atribut4 value="a todos">
        </element6>
        <element6 value="80">
            <atribut3 value="de nuevo">
            <atribut4 value="hola">
            <element10>
                <atribut10 value="hola">
                <atribut10 value="hola">
            </element10>
        </element6>



    puedes postear como estas haciendo el query de linq para recuperar los items ?

    saludos

    Leandro Tuttini

    Work: Iceberg Solutions
    Blog
    Buenos Aires
    Argentina
    viernes, 5 de junio de 2009 15:15