none
Uso del xml . Ayuda RRS feed

  • Pregunta

  • hola tengo una duda en este codigo. 

    Uso este metodo : Leo de un archivo xml los tipos de libro, pero quiero mostrar el precio que sea menor a 30, ese codigo me muestra los siguiente : Libro para : cocina ;; Precio : 30.00 , tengo mas libros con otros precios y solo quiero mostrar los libros con precio menores a 30. como haria para leer el valor en si .

        

    Private Sub LeerDOM(path As String)
            Dim xmlDoc As New XmlDocument()
            xmlDoc.Load(path)
            Dim libros As XmlNodeList = xmlDoc.GetElementsByTagName("xml")
            For Each xml As XmlNode In libros
                Console.WriteLine("Libro para  : " & xml.Attributes("category").Value)
                For Each child As XmlNode In xml.ChildNodes
                    If child.Name = "price" Then
                        Console.WriteLine(child.Name & ": " & child.InnerText)
                        Console.WriteLine("HOLI SI VALE XD")
                    End If
                Next
                Console.WriteLine("**")
            Next
    End Sub

    <xml category="cooking">
        <title lang="en">Everyday Italian</title>
        <author>Giada De Laurentiis</author>
        <year>2005</year>
        <price>30.00</price>
      </xml>

    jueves, 1 de junio de 2017 1:06

Respuestas

  • Necesitaría un ejemplo con dos o más libros en el xml para comprender la estructura. Sin saber la estructura exacta del xml no te puedo asegurar que funcione pero podrías probar algo como esto:

    Private Sub LeerDOM(path As String)
        Dim xmlDoc As New XmlDocument()
        xmlDoc.Load(path)
        Dim libros As XmlNodeList = xmlDoc.GetElementsByTagName("xml")
        For Each xml As XmlNode In libros
    
            For Each child As XmlNode In xml.ChildNodes
                If child.Name.ToLower = "price" Then
                    If Val(child.InnerText) <= 30 Then
                        Console.WriteLine("Libro para  : " & xml.Attributes("category").Value)
                        Console.WriteLine(child.Name & ": " & child.InnerText)
                        Console.WriteLine("HOLI SI VALE XD")
                    End If
                End If
            Next
            Console.WriteLine("**")
        Next
    End Sub



    Saludos, Javier J

    jueves, 1 de junio de 2017 7:23