VB.NET中的LINQ to XML

前端之家收集整理的这篇文章主要介绍了VB.NET中的LINQ to XML前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我基本上是LINQ的新手.我在这里看了很多,我很困惑.我已经看过一些允许我使用LINQ的强类型对象的例子,但是我不太了解它们,因为它们在C#中,我想让你用LINQ做不同的事情(我想?).

无论如何,这就是我想要做的:

Dim productXML As XDocument = XDocument.Load( _
    Server.MapPath("~/App_Data/products.xml"))

Dim products As List(Of Product) = 'some query to select all products ?'

'set up Product properties here'
someProduct.ProductID = 'somehow get productid from XML'

编辑 – 我只想获取XML文档中所有产品的列表,并将它们放入泛型列表中.

Marc是对的,VB可以让你做很多好事.我自己就是C#家伙,但我刚刚敲了VB解决方案,看看如何为你做这件事.我已经发布了下面的代码并解释了关键部分. VB对Xml的功能给我留下了深刻的印象!

我在您的代码示例中看到您已经设法将Xml加载到XDocument中.完成XDocument.Load后,您可以使用一些特殊语法访问Xml文档.

对于初学者,我们希望从文档中获取所有产品;即全部<产品>元素.我们需要做以下事情:

Dim products = productsDoc...<Product>

这表示你想要所有<产品>文件中的元素.这为我们提供了一个IEnumerable XElements集合.

一旦我们从集合中提取单个产品,我们就会想要访问产品的价值,例如它的名称或价格.为此,我们需要执行以下操作:

' this gets the value of the price element within a product
product.<Price>.Value

这是一个完整的示例以及您要查看的预期输出

Module Module1

    ' some products xml to use for this example
    Dim productsXml = <Xml>
                          <Product>
                              <Name>Mountain Bike</Name>
                              <Price>59.99</Price>
                          </Product>
                          <Product>
                              <Name>Arsenal Football</Name>
                              <Price>9.99</Price>
                          </Product>
                          <Product>
                              <Name>Formula One Cap</Name>
                              <Price>14.99</Price>
                          </Product>
                          <Product>
                              <Name>Robin Hood Bow</Name>
                              <Price>8.99</Price>
                          </Product>
                      </Xml>

    Sub Main()

        ' load the xml into an XDocument
        ' NOTE: this line isn't needed when using inline XML as per this example,' but I wanted to make this code easy to modify for reading in text files
        Dim productsDoc = System.Xml.Linq.XDocument.Parse(productsXml.ToString())

        ' get all <Product> elements from the XDocument
        Dim products = From product In productsDoc...<Product> _
                       Select product

        ' go through each product
        For Each product In products
            ' output the value of the <Name> element within product
            Console.WriteLine("Product name is {0}",product.<Name>.Value)
            ' output the value of the <Price> element within product
            Console.WriteLine("Product price is {0}",product.<Price>.Value)
        Next

    End Sub

End Module

程序输出是:

Product name is Mountain Bike
Product price is 59.99
Product name is Arsenal Football
Product price is 9.99
Product name is Formula One Cap
Product price is 14.99
Product name is Robin Hood Bow
Product price is 8.99

希望这有用.如果您想了解更多信息,请询问:-)

睡前很难写出连贯的东西!

猜你在找的VB相关文章