linq to xml实例讲解(对xml的查询,新增,修改,删除操作)
linq to xml所用的类都封装在system.xml.linq下,得先引用类
Imports System.Linq
Imports System.Xml.Linq
读取xml中的数据
'加载文件
dim xdoc =xdocument.load("test.xml") 'test.xml为您要加载的xml文件
dim ps=from p in xdoc.descendants("Customers") select new with {.id=p.element("CustomerId").value,.name=p.element("CustomerName").value,........} '以此类推,读出你想要读出的字段
取得节点值:element("节点名称").value
'循环读出所有的数据
for each p in ps
'输入结果
msgbox(p.id,p.name......)
next
修改记录
'先检索您要修改的数据 where
dim xdoc=xdocument.load("test.xml")
dim ps=from p in xdoc.descendants("Customers") where p.element("CustomerId").value="1111" select p
dim el as xelement
for each el in ps
el.element("CustomerName").value="linzai" '修改
next
'保存文件
xdoc.save("test.xml")
'删除记录(Remove方法)
Dim xdoc = XDocument.Load("test.xml")
Dim ps = From p In xdoc.Descendants("Customers") _
Where p.Element("CustomerID").Value = "1111000" Select p
'删除记录
ps.Remove()
xdoc.Save("test.xml")
'新增记录
Dim xdoc As XElement = XElement.Load("test.xml")
Dim newlg As New XElement("Customers", _
New XElement("CustomerID", "111"), _
New XElement("CompanyName", "xxxxxxxx"), _
New XElement("ContactName", "xxx"), _
New XElement("ContactTitle", "xxx"), _
New XElement("Address", "上海"), _
New XElement("City", "上海"), _
New XElement("PostalCode", "xxxxxxxxxx"), _
New XElement("Country", "中国"), _
New XElement("Phone", "1231321"), _
New XElement("Fax", "11111111") _
)
xdoc.Add(newlg)'加入记录
xdoc.Save("test.xml") ’保存记录