Imports System.IO
Imports System.Xml
Module Module1
Sub Main()
'ReadAllData()
'DocReadAllData()
'ListAllName()
'ListNameofId()
'ListFemale()
'ListTelephone()
' ListDetailByAddress()
'ListNestedZip()
'ListByOrder()
'CreateXml()
'ReadXmlFile()
'FindElementByPosion(1)
'ListTake()
'FindXleCount()
'XeleAdd()
'XeleReplace()
'XeleDelAttrib()
'XeleDel()
'DelXeleByposion()
' XeleSave()
SetPhoneValue()
Console.ReadLine()
End Sub
'用xelement元素方法来读取数据
Private Sub ReadAllData()
Dim Xelement As XElement = Xelement.Load("..\..\test.xml")
Dim Employees As IEnumerable(Of XElement) = Xelement.Elements
'读XML数据
For Each employee In Employees
Console.WriteLine(employee)
Next
Console.ReadLine()
End Sub
'用XDOCUMENT 方法来读取数据
Private Sub DocReadAllData()
Dim Xdocument As XDocument = Xdocument.Load("..\..\test.xml")
' Dim Employees As IEnumerable(Of XElement) = Xdocument.Elements
Dim Employees As IEnumerable(Of XElement) = Xdocument.Root.Elements
'读XML数据
For Each employee In Employees
Console.WriteLine(employee)
Next
Console.ReadLine()
End Sub
'访问所顾员,并列出他们的名称
Private Sub ListAllName()
Dim Xelement As XElement = Xelement.Load("..\..\test.xml")
Dim Employees As IEnumerable(Of XElement) = Xelement.Elements
'读XML数据
Console.WriteLine("所有成员名称 ...")
For Each employee In Employees
Console.WriteLine(employee.Element("Name").Value)
Next
Console.ReadLine()
End Sub
Private Sub ListNameofId()
Dim Xelement As XElement = Xelement.Load("..\..\test.xml")
Dim Employees As IEnumerable(Of XElement) = Xelement.Elements
'读XML数据
For Each employee In Employees
Console.WriteLine("{0}顾员的ID号:{1}", employee.Element("Name").Value,
employee.Element("EmpId").Value)
Next
Console.ReadLine()
End Sub
'访问所有顾员性别为女的
Private Sub ListFemale()
Dim Xelement As XElement = Xelement.Load("..\..\test.xml")
Dim Name =
From nm In Xelement.Elements("Employee") Where
CStr(nm.Element("Sex")) = "Female" Select nm
For Each Xele As XElement In Name
Console.WriteLine(Xele)
Next
Console.ReadLine()
End Sub
'列出所顾员中属性为家庭成员的电话号码
Private Sub ListTelephone()
Dim Xelement As XElement = Xelement.Load("..\..\test.xml")
Dim HomePhone =
From PhoneTel In Xelement.Elements("Employee")
Where CStr(PhoneTel.Element("Phone").Attribute("Type")) =
"Home" Select PhoneTel
For Each Xele As XElement In HomePhone
Console.WriteLine(Xele.Element("Phone").Value)
Next
Console.ReadLine()
End Sub
Private Sub SetPhoneValue()
Dim Xelement As XElement = Xelement.Load("..\..\test.xml")
Dim HomePhone =
From PhoneTel In Xelement.Elements("Employee")
Where CStr(PhoneTel.Element("Phone").Attribute("Type")) =
"Home" Select PhoneTel
For Each Xele As XElement In HomePhone
' Console.WriteLine(Xele.Element("Phone").Value)
Console.WriteLine(Xele)
Xele.Element("Phone").Value = "fffff"
Next
Console.WriteLine(Xelement)
Console.ReadLine()
End Sub
Private Sub ListDetailByAddress()
Dim Xelement As XElement = Xelement.Load("..\..\test.xml")
Dim Addresses = From Address In Xelement.Elements("Employee")
Where CStr(Address.Element("Address").Element("City")) = "Alta"
Select Address
For Each Xele As XElement In Addresses
Console.WriteLine(Xele)
Next
Console.ReadLine()
End Sub
Private Sub ListNestedZip()
Dim Xelement As XElement = Xelement.Load("..\..\test.xml")
For Each Xele As XElement In Xelement.Descendants("Zip")
Console.WriteLine(Xele.ToString)
Next
Console.ReadLine()
End Sub
Private Sub ListByOrder()
Dim Xelement As XElement = Xelement.Load("..\..\test.xml")
Dim Codes As IEnumerable(Of String) =
From code In Xelement.Elements("Employee")
Let Zip = CStr(code.Element("Address").Element("Zip"))
Order By Zip
Select Zip
For Each zp As String In Codes
Console.WriteLine(zp)
Next
Console.ReadLine()
End Sub
Private Sub CreateXml()
Dim EmpNM As XNamespace = "urn:lst-emp:emp"
Dim Xdoc As New XDocument(New XDeclaration("1.0", "UTF-16", Nothing),
New XElement(EmpNM + "Employees",
New XElement("Employee",
New XComment("only 3 elements for demo purpose"),
New XElement("EmpId", "5"),
New XElement("Name", "Kimmy"),
New XElement("Sex", "Female"))))
Dim sw As New StringWriter
Dim xWrite As XmlWriter = XmlWriter.Create(sw)
Xdoc.Save(sw)
xWrite.Close()
Xdoc.Save("c:\Something.xml")
Console.WriteLine(sw)
Console.ReadLine()
End Sub
Private Sub ReadXmlFile()
Dim Xread As XmlReader = XmlReader.Create("..\..\test.xml")
Dim Xele As XElement = XElement.Load(Xread)
Console.WriteLine(Xele)
Xread.Close()
End Sub
'查找指定位置的节点
Private Sub FindElementByPosion(ByVal pPosition As Integer)
Console.WriteLine("使用节点方法")
Dim Xele As XElement = XElement.Load("..\..\test.xml")
Dim Emp = Xele.Descendants("Employee").ElementAt(0)
Console.WriteLine(Emp)
Console.WriteLine("-----------------")
Console.WriteLine("使用文档方法")
Dim Xdoc As XDocument = XDocument.Load("..\..\test.xml")
Dim Emp1 = Xdoc.Descendants("Employee").ElementAt(2)
Console.WriteLine(Emp1)
End Sub
Private Sub ListTake()
Dim Xele As XElement = XElement.Load("..\..\test.xml")
'Dim Emps = Xele.Descendants("Employee").Take(2) ’列出前两个节点
'Dim Emps = Xele.Descendants("Employee").Skip(1).Take(2) '跳过一个节点后,再列出前两个节点
'Dim Emps = Xele.Descendants("Employee").Reverse.Take(2) '列出最最后两个节点
Dim Emps = Xele.Descendants("Employee").Reverse.Take(2).Reverse '列出最最后两个节点
'跳过一个节点后,再列出前两个节点
For Each emp In Emps
Console.WriteLine(emp.Element("EmpId").ToString + emp.Element("Name").ToString)
Console.WriteLine(emp.Element("EmpId").Value + emp.Element("Name").Value)
Next
End Sub
'按一定条件查询节点数目
Private Sub FindXleCount()
Dim Xele As XElement = XElement.Load("..\..\test.xml")
Dim StCnt = From Address In Xele.Elements("Employee")
Where CStr(Address.Element("Address").Element("State") = "CA")
Select Address
Console.WriteLine("No of employees living in Ca state are {0}", stcnt.count)
End Sub
'节点添加
Private Sub XeleAdd()
Dim Xele As XElement = XElement.Load("..\..\test.xml")
Xele.AddFirst(New XElement("Employee",
New XElement("EmpId", 5),
New XElement("Name", "Georage"),
New XElement("Phone", "423-555-4242",
New XAttribute("Type", "Home")
)
)
)
Console.WriteLine(Xele)
End Sub
'节点内容的替换
Private Sub XeleReplace()
Dim Xele As XElement = XElement.Load("..\..\test.xml")
Dim Countries = Xele.Elements("Employee").Elements("Address").Elements("Country").ToList
For Each cele As XElement In Countries
cele.ReplaceNodes("United States of America ")
Next
Console.WriteLine(Xele)
End Sub
'移除节点的属性
Private Sub XeleDelAttrib()
Dim Xele As XElement = XElement.Load("..\..\test.xml")
Dim Phone = Xele.Elements("Employee").Elements("Phone").ToList
For Each pele As XElement In Phone
pele.RemoveAttributes()
Next
Console.WriteLine(Xele)
End Sub
'删除节点的内容,也可以用来更新设备
Private Sub XeleDel()
Dim Xele As XElement = XElement.Load("..\..\test.xml")
Dim Addr = Xele.Elements("Employee").ToList
For Each addele As XElement In Addr
addele.SetElementValue("Address", Nothing)
Next
Console.WriteLine(Xele)
End Sub
'删除节点按位置
Private Sub DelXeleByposion()
Dim Xele As XElement = XElement.Load("..\..\test.xml")
Dim Emps = Xele.Descendants("Employee")
Emps.Reverse.Take(2).Remove()
Console.WriteLine(Xele)
End Sub
'保存节点内容
Private Sub XeleSave()
Dim Xele As XElement = XElement.Load("..\..\test.xml")
Xele.Add(New XElement("Employee",
New XElement("EmpId", 5),
New XElement("Name", "George"),
New XElement("Sex", "Male"),
New XElement("Phone", "423-555-4242",
New XAttribute("Type", "Home")),
New XElement("Phone", "424-555-0545",
New XAttribute("Type", "Work")),
New XElement("Address",
New XElement("Street", "Fred Park"),
New XElement("City", "Acampo"),
New XElement("State", "CA"),
New XElement("Zip", "95220"),
New XElement("Country", "USA"))))
Xele.Save("..\..\test.xml")
Console.WriteLine(Xele)
End Sub
Private Sub ListData()
Dim Xele As XElement = XElement.Load("..\..\test.xml")
Dim a1() = {"a1", "a2", "a3", "a4"}
Dim i As Integer = 0
Xele.Save("..\..\test.xml")
Console.WriteLine(Xele)
End Sub
Public Sub A1()
Dim contacts As XElement =
<contacts>
<contact>
<name>Patrick Hines</name>
<phone type="home">206-555-0144</phone>
<phone type="work">425-555-0145</phone>
</contact>
</contacts>
Console.WriteLine("Name: " & contacts...<name>.Value)
Dim homePhone = From phone In contacts...<phone>
Select phone.Value
Console.WriteLine("Home Phone = {0}", homePhone(0))
End Sub
' Dim contact As XElement =
' <contact>
' <name>Patrick Hines</name>
' <phone type="home">206-555-0144</phone>
' <phone type="work">425-555-0145</phone>
' </contact>
' Dim types = contact.<phone>.Attributes("type")
'For Each attr In types
' Console.WriteLine(attr.Value)
'Next
' Dim contact As XElement =
' <contact>
' <name>Patrick Hines</name>
' <phone type="home">206-555-0144</phone>
' <phone type="work">425-555-0145</phone>
' </contact>
' Dim homePhone = From hp In contact.<phone>
' Where contact.<phone>.@type = "home"
' Select hp
'Console.WriteLine("Home Phone = {0}", homePhone(0).Value)
' Dim contacts As XElement =
' <contacts>
' <contact>
' <name>Patrick Hines</name>
' <phone type="home">206-555-0144</phone>
' </contact>
' <contact>
' <name>Lance Tucker</name>
' <phone type="work">425-555-0145</phone>
' </contact>
' </contacts>
' Dim homePhone = From contact In contacts.<contact>
' Where contact.<phone>.@type = "home"
' Select contact.<phone>
'Console.WriteLine("Home Phone = {0}", homePhone(0).Value)
End Module
XML各种操作方法汇集
最新推荐文章于 2022-06-26 00:15:35 发布