VB.Net/XML LINQ/XDocument
Содержание
- 1 Add element to XDocument
- 2 Create an in-memory XML document with XDocument
- 3 Create new Xml document with XDocument and XElement
- 4 Create XDocument from XmlReader
- 5 Display the name of the root element in the loaded XML tree
- 6 Display the XML files declaration information with an XDocument object
- 7 Get version from XDocument
- 8 Get Xml encoding from XDocument
- 9 Is Xml standalone
- 10 Load the Employees.xml and store the contents into an XDocument object
- 11 LocalName returns the name of the element as a string
- 12 Name property returns the XName class
- 13 Reading Rss feed with XDocument
Add element to XDocument
<source lang="vbnet"> Imports System Imports System.Reflection Imports System.Xml Module Module1
Sub Main() Dim xdoc As XDocument = XDocument.Load("C:\hamlet.xml") Dim xe As XElement = New XElement("PERSONA","new value") xdoc.Element("PLAY").Element("PERSONAE").Add(xe) Dim query = From people In xdoc.Descendants("PERSONA") Select people.Value Console.WriteLine("{0} Players Found", query.Count()) For Each item In query Console.WriteLine(item) Next End Sub
End Module
</source>
Create an in-memory XML document with XDocument
<source lang="vbnet"> Class Car
Public PetName As String Public ID As Integer
End Class Module Program
Sub Main() " . Dim inventoryDoc As XDocument = _ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <Inventory> <Car ID="1"> <Color>Green</Color> <Make>BMW</Make> <PetName>Stan</PetName> </Car> <Car ID="2"> <Color>Pink</Color> <Make>Yugo</Make> <PetName>A</PetName> </Car> </Inventory> Console.WriteLine(inventoryDoc) inventoryDoc.Save("SimpleInventory.xml") End Sub
End Module
</source>
Create new Xml document with XDocument and XElement
<source lang="vbnet"> Imports System Imports System.Reflection Imports System.Xml Module Module1
Sub Main() Dim xml1 As New XDocument(New XDeclaration("1.0", "UTF-8", "yes"), _ New XElement("people", _ New XAttribute("id", 1), _ New XAttribute("year", 2004), _ New XAttribute("salar", "1"))) Dim sw As New System.IO.StringWriter() xml1.Save(sw) Console.WriteLine(sw) End Sub
End Module
</source>
Create XDocument from XmlReader
<source lang="vbnet"> Imports System Imports System.Reflection Imports System.Xml Module Module1
Sub Main() Dim reader As XmlReader = XmlReader.Create("People.xml") Dim xml As XDocument = XDocument.Load(reader) Console.WriteLine(xml) Dim idperson As XElement = xml.Descendants("person").Last() idperson.Add(New XElement("id", _ New XAttribute("id", 1), _ New XAttribute("year", 2006), _ New XAttribute("salary", "1"))) Dim sw As New IO.StringWriter() Dim w As XmlWriter = XmlWriter.Create(sw) xml.Save(w) w.Close() Console.WriteLine(sw.ToString()) End Sub
End Module
</source>
Display the name of the root element in the loaded XML tree
<source lang="vbnet"> Imports System Imports System.Xml.Linq
Public Class MainClass Public Shared Sub Main() Dim xmlDoc As XDocument = XDocument.Load("Employees.xml") Console.WriteLine("The document declaration is "{0}"", xmlDoc.Declaration.ToString) Console.WriteLine("The root element is "{0}"", xmlDoc.Root.Name.LocalName) End Sub End Class </source>
Display the XML files declaration information with an XDocument object
<source lang="vbnet"> Imports System Imports System.Xml.Linq
Public Class MainClass Public Shared Sub Main() Dim xmlDoc As XDocument = XDocument.Load("Employees.xml") Console.WriteLine("The document declaration is "{0}"", xmlDoc.Declaration.ToString) Console.WriteLine("The root element is "{0}"", xmlDoc.Root.Name.LocalName) End Sub End Class </source>
Get version from XDocument
<source lang="vbnet"> Imports System Imports System.Reflection Imports System.Xml Module Module1
Sub Main() Dim xml As XDocument = XDocument.Load("Hello_XLINQ.xml") Console.WriteLine("Version: {0}", xml.Declaration.Version) End Sub
End Module
</source>
Get Xml encoding from XDocument
<source lang="vbnet"> Imports System Imports System.Reflection Imports System.Xml Module Module1
Sub Main() Dim xml As XDocument = XDocument.Load("Hello_XLINQ.xml") Console.WriteLine("Encoding: {0}", xml.Declaration.Encoding) End Sub
End Module
</source>
Is Xml standalone
<source lang="vbnet"> Imports System Imports System.Reflection Imports System.Xml Module Module1
Sub Main() Dim xml As XDocument = XDocument.Load("Hello_XLINQ.xml") Console.WriteLine("Standalone: {0}", xml.Declaration.Standalone) End Sub
End Module
</source>
Load the Employees.xml and store the contents into an XDocument object
<source lang="vbnet"> Imports System Imports System.Xml.Linq
Public Class MainClass Public Shared Sub Main() Dim xmlDoc As XDocument = XDocument.Load("Employees.xml") Console.WriteLine("The document declaration is "{0}"", xmlDoc.Declaration.ToString) Console.WriteLine("The root element is "{0}"", xmlDoc.Root.Name.LocalName) End Sub End Class </source>
LocalName returns the name of the element as a string
<source lang="vbnet">
Imports System Imports System.Xml.Linq
Public Class MainClass Public Shared Sub Main() Dim xmlDoc As XDocument = XDocument.Load("Employees.xml") Console.WriteLine("The document declaration is "{0}"", xmlDoc.Declaration.ToString) Console.WriteLine("The root element is "{0}"", xmlDoc.Root.Name.LocalName) End Sub End Class </source>
Name property returns the XName class
<source lang="vbnet"> Imports System Imports System.Xml.Linq
Public Class MainClass Public Shared Sub Main() Dim xmlDoc As XDocument = XDocument.Load("Employees.xml") Console.WriteLine("The document declaration is "{0}"", xmlDoc.Declaration.ToString) Console.WriteLine("The root element is "{0}"", xmlDoc.Root.Name.LocalName) End Sub End Class </source>
Reading Rss feed with XDocument
<source lang="vbnet"> Imports System Imports System.Data.DLinq Imports System.Expressions Imports System.Query Imports System.Reflection Imports System.Xml Module Module1
Sub Main() Dim xdoc As XDocument = XDocument.Load("http://yourDomain.net/Rss.aspx") Dim query = From rssFeed In xdoc.Descendants("channel") _ Select Title = rssFeed.Element("title").Value, _ Description = rssFeed.Element("description").Value, _ Link = rssFeed.Element("link").Value For Each item In query Console.WriteLine("TITLE: " + item.Title) Console.WriteLine("DESCRIPTION: " + item.Description) Console.WriteLine("LINK: " + item.Link) Next
End Sub
End Module
</source>