none
LINQ Nodos Repetidos RRS feed

  • Pregunta

  • Buenas, 

    Tengo un problema.

    Tengo un subnodo de un XML el cual me va a venir un subnodo que no tengo ni idea como se llama. Son totalmente aleatorios y ahi un numero ilimitado, por tanto mi idea es coger <valor> 1 y otro que coja el subnodo superior .name.

    <Atributos>
            <C00003> --> 2 PASO COJER EL NOMBRE DE ESTE NODO
                  <Valor>1</Valor>   -- > 1 PASO SITUARSE AQUI
            </C00003>
            <C00008>
                  <Valor>2</Valor>
            </C00008>
            <C00009>
                  <Valor>2</Valor>
            </C00009>
    </Atributos>

    Utilizo el linq así:

                                    Key .atributos = (From e In a.Descendants("Atributos").
                                                        Select New With
                                                        {
                                                            Key .caracteristica = e.Element("").Value, _
                                                            Key .valor = e.Element("Valor").Value
                                                        }).FirstOrDefault(), _



    • Editado arseneonly viernes, 30 de septiembre de 2011 6:55
    jueves, 29 de septiembre de 2011 12:45

Respuestas

  • Hola de nuevo,

    Esto me esta funcionando con LinqPad:

    Sub Main
    	dim str = "<Atributos>"  & _
    					"<C00003>"  & _
    					"	  <Valor>1</Valor>"  & _
    					"</C00003>"  & _
    					"<C00008>"  & _
    					"	  <Valor>2</Valor>"  & _
    					"</C00008>"  & _
    					"<C00009>"  & _
    					"	  <Valor>2</Valor>"  & _
    					"</C00009>"  & _
    			"</Atributos>"
    			
    	Dim doc As XDocument = XDocument.Parse(str)
    	
    	Dim items = (From e In doc.Elements("Atributos").Elements() _
    				Select New With { e.Name, e.Element("Valor").Value }).ToList
    
    	For Each item In items
    		Console.WriteLine(item)
    	Next
    
    End Sub
    
    

    Saludos,

    JA Reyes.


    Please remember to Vote & "Mark As Answer" if this post is helpful to you.
    Por favor, recuerda Votar y "Marcar como respuesta" si la solución de esta pregunta te ha sido útil.
    • Propuesto como respuesta Pedro Hurtado viernes, 30 de septiembre de 2011 14:40
    • Votado como útil arseneonly jueves, 20 de octubre de 2011 14:44
    • Marcado como respuesta arseneonly jueves, 20 de octubre de 2011 14:44
    viernes, 30 de septiembre de 2011 10:00

Todas las respuestas

  • Hola,

    Prueba con esto:

    Key .caracteristica = e.Name
    

    Saludos,

    JA Reyes.


    Please remember to Vote & "Mark As Answer" if this post is helpful to you.
    Por favor, recuerda Votar y "Marcar como respuesta" si la solución de esta pregunta te ha sido útil.
    • Propuesto como respuesta Pedro Hurtado viernes, 30 de septiembre de 2011 7:48
    viernes, 30 de septiembre de 2011 7:36
  • Creo que es imposible hacerlo, abandono la idea. Sorry. 


     

    • Marcado como respuesta arseneonly viernes, 30 de septiembre de 2011 8:44
    • Desmarcado como respuesta arseneonly miércoles, 5 de octubre de 2011 9:42
    viernes, 30 de septiembre de 2011 8:44
  • Hola de nuevo,

    Esto me esta funcionando con LinqPad:

    Sub Main
    	dim str = "<Atributos>"  & _
    					"<C00003>"  & _
    					"	  <Valor>1</Valor>"  & _
    					"</C00003>"  & _
    					"<C00008>"  & _
    					"	  <Valor>2</Valor>"  & _
    					"</C00008>"  & _
    					"<C00009>"  & _
    					"	  <Valor>2</Valor>"  & _
    					"</C00009>"  & _
    			"</Atributos>"
    			
    	Dim doc As XDocument = XDocument.Parse(str)
    	
    	Dim items = (From e In doc.Elements("Atributos").Elements() _
    				Select New With { e.Name, e.Element("Valor").Value }).ToList
    
    	For Each item In items
    		Console.WriteLine(item)
    	Next
    
    End Sub
    
    

    Saludos,

    JA Reyes.


    Please remember to Vote & "Mark As Answer" if this post is helpful to you.
    Por favor, recuerda Votar y "Marcar como respuesta" si la solución de esta pregunta te ha sido útil.
    • Propuesto como respuesta Pedro Hurtado viernes, 30 de septiembre de 2011 14:40
    • Votado como útil arseneonly jueves, 20 de octubre de 2011 14:44
    • Marcado como respuesta arseneonly jueves, 20 de octubre de 2011 14:44
    viernes, 30 de septiembre de 2011 10:00
  • Hola Jose Antonio,

    Efectivamente así es pero no solamente en LINQPad y en c#,vb,etc.

    Saludos,

     


    phurtado
    viernes, 30 de septiembre de 2011 14:40
  • Hola arseneonly,

    Pudiste probar la solución propuesta?

    Saludos,

    JA Reyes.


    Please remember to Vote & "Mark As Answer" if this post is helpful to you.
    Por favor, recuerda Votar y "Marcar como respuesta" si la solución de esta pregunta te ha sido útil.
    martes, 11 de octubre de 2011 13:31