LINQ to XML - VB.NET
如果有用過DOM的方式來讀寫過XML的話,應該會覺得用 LINQ 新增的類別來建XML檔的方式很像,以下是一些簡單的LINQ操作XML範例。
如果要新建一個檔案的話如下方程式碼:
Dim xEleBooks As New XElement("TPGroup")
Dim xEleBook As New XElement("TestProgram")
xEleBook.SetAttributeValue("TP_NAME", "DEMO")
xEleBook.SetAttributeValue("TP_RELEASE", "True")
xEleBooks.Add(xEleBook)
Dim xEleBook1 As New XElement("TestProgram")
xEleBook1.SetAttributeValue("TP_NAME", "DEMO1")
xEleBook1.SetAttributeValue("TP_RELEASE", "False")
xEleBooks.Add(xEleBook1)
xDoc.Add(xEleBooks)
xDoc.Save(".\TEST.xml")
如果要讀入剛剛的檔案然後用LINQ查詢:
Dim enumXML = From ex In xEle.Elements Where ex.Attribute("TP_RELEASE").Value = "True"
For Each x As XElement In enumXML
MsgBox(x.Attribute("TP_NAME").Value)
Next
如果要將剛剛的檔案內容修改:
Dim enumXML = From ex In xEle.Elements Where ex.Attribute("TP_RELEASE").Value = "True"
For Each x As XElement In enumXML
x.Attribute("TP_NAME").SetValue("Change")
Next
xEle.Save(".\TEST.xml")
如果要刪除節點:
Dim enumXML = From ex In xEle.Elements Where ex.Attribute("TP_RELEASE").Value = "True"
For Each x As XElement In enumXML
x.Remove()
Next
xEle.Save(".\TEST.xml")
另外還有一種VB的特殊寫法,可以直接在程式碼中寫類似XML的程式碼,叫做XML Literals,寫法如下:
<TestProgram TP_NAME="DEMO" TP_RELEASE="True"/>
<TestProgram TP_NAME="DEMO1" TP_RELEASE="False"/>
</TPGroup>
xml.Save(".\TEST.xml")