DataSet 和 DataTable都有現成的方法:WriteXml

成都創新互聯是工信部頒發資質IDC服務器商,為用戶提供優質的四川樂山服務器托管服務
DataTable tb = this.dataGridView1.DataSource as DataTable;
if(tb != null)
{
tb.WriteXml(@"C:\table.xml",true);
return;
}
DataView dv = this.dataGridView1.DataSource as DataView;
if(dv != null)
{
dv.Table.WriteXml(@"C:\table.xml",true);
return;
}
IList list = this.dataGridView1.DataSource as IList;
if(list != null)
{
//to do,如果是IList,就要你自己想辦法導出了
//XmlDocument or XmlWriter都可以考慮
}
我這里有個vb xml類,你試著用用!你需要了解dom 和xpath方面的知識。
下面的代碼需要在工程中添加引用: microsoft xml 6.0
'*********************************************************************************************
'mornxml.cls xml解析類
'AUTHOR Morn Woo
'完成時間 2011年4月18日
'版本 ver1.0 20110111,修正了部分錯誤
'*********************************************************************************************
Option Explicit
Option Compare Text
DefInt I
DefStr S
DefDate D
DefLng L
DefBool B
Dim mvarsXmlFile As String 'xmlFile屬性內存變量
Dim mvarsXmlContent As String 'xmlContent屬性內存變量
Dim mvarsXmlRoot As MSXML2.DOMDocument 'xmlRoot屬性內存變量
Public Property Let XmlRoot(ByRef vData As MSXML2.DOMDocument)
Set mvarsXmlRoot = vData
End Property
Public Property Get XmlRoot() As MSXML2.DOMDocument
Set XmlRoot = mvarsXmlRoot
End Property
Public Property Let XmlFile(ByVal vData As String)
mvarsXmlFile = vData
End Property
Public Property Get XmlFile() As String
XmlFile = mvarsXmlFile
End Property
Public Property Let XmlContent(ByVal vData As String)
mvarsXmlContent = vData
End Property
Public Property Get XmlContent() As String
XmlContent = mvarsXmlContent
End Property
'類初始化
Private Sub Class_Initialize()
Me.XmlContent = ""
Me.XmlFile = ""
'Me.XmlRoot = New MSXML2.DOMDocument
Set mvarsXmlRoot = New MSXML2.DOMDocument
End Sub
'Private Sub Class_Terminate()
' XmlRoot.abort
'
'End Sub
Function fun_XmlLoad(ByVal sFilePath As String) As Boolean
On Error GoTo Morn
fun_XmlLoad = False
If Dir(sFilePath, vbNormal) = "" Then Exit Function
Me.XmlRoot.Load sFilePath
Me.XmlFile = Trim(sFilePath)
Do While XmlRoot.readyState 4
DoEvents
Loop
Me.XmlFile = XmlRoot.XML
fun_XmlLoad = True
Exit Function
Morn:
End Function
'找到節點對象
Function fun_GetElement(ByVal sItem As String) As MSXML2.IXMLDOMElement
'Set fun_GetElement = New ms
On Error GoTo Morn
Set fun_GetElement = Me.XmlRoot.selectSingleNode(sItem)
Exit Function
Morn:
End Function
'讀取節點text函數
Function fun_GetElementText(ByVal sItem As String) As String
Dim oElement As MSXML2.IXMLDOMElement
fun_GetElementText = ""
On Error GoTo Morn
Set oElement = Me.XmlRoot.selectSingleNode(sItem)
If oElement Is Nothing Then Exit Function
fun_GetElementText = oElement.Text
Exit Function
Morn:
End Function
'讀取節點屬性值函數,默認讀取value屬性值
Function fun_GetProperty(ByVal sItem As String, Optional ByVal sPropertyName = "value") As String
Dim oElement As MSXML2.IXMLDOMElement
fun_GetProperty = ""
On Error GoTo Morn
Set oElement = Me.XmlRoot.selectSingleNode(sItem)
Set oElement = Me.XmlRoot.selectSingleNode(sItem)
If oElement Is Nothing Then Exit Function
fun_GetProperty = oElement.getAttribute(sPropertyName)
Exit Function
Morn:
End Function
使用System.XML
Imports Microsoft.VisualBasic
Imports System
Imports System.IO
Imports System.Xml
namespace HowTo.Samples.XML
public class WriteXmlFileSample
private const document as string = "newbooks.xml"
shared sub Main()
Dim myWriteXmlFileSample as WriteXmlFileSample
myWriteXmlFileSample = new WriteXmlFileSample()
myWriteXmlFileSample.Run(document)
end sub
public sub Run(args As String)
Dim myXmlTextReader as XmlTextReader = nothing
Dim myXmlTextWriter as XmlTextWriter = nothing
try
myXmlTextWriter = new XmlTextWriter (args, nothing)
myXmlTextWriter.Formatting = System.Xml.Formatting.Indented
myXmlTextWriter.WriteStartDocument(false)
myXmlTextWriter.WriteDocType("bookstore", nothing, "books.dtd", nothing)
myXmlTextWriter.WriteComment("此文件表示書店庫存數據庫的另一個片斷")
myXmlTextWriter.WriteStartElement("bookstore")
myXmlTextWriter.WriteStartElement("book", nothing)
myXmlTextWriter.WriteAttributeString("genre","autobiography")
myXmlTextWriter.WriteAttributeString("publicationdate","1979")
myXmlTextWriter.WriteAttributeString("ISBN","0-7356-0562-9")
myXmlTextWriter.WriteElementString("title", nothing, "The Autobiography of Mark Twain")
myXmlTextWriter.WriteStartElement("Author", nothing)
myXmlTextWriter.WriteElementString("first-name", "Mark")
myXmlTextWriter.WriteElementString("last-name", "Twain")
myXmlTextWriter.WriteEndElement()
myXmlTextWriter.WriteElementString("price", "7.99")
myXmlTextWriter.WriteEndElement()
myXmlTextWriter.WriteEndElement()
'向文件寫 XML 并關閉編寫器
myXmlTextWriter.Flush()
myXmlTextWriter.Close()
' 讀取返回的文件并進行分析以確保正確生成 XML
myXmlTextReader = new XmlTextReader (args)
FormatXml (myXmlTextReader, args)
catch e as Exception
Console.WriteLine ("異常:{0}", e.ToString())
finally
Console.WriteLine()
Console.WriteLine("對文件 {0} 的處理已完成。", args)
If Not myXmlTextReader Is Nothing
myXmlTextReader.Close()
end if
'關閉編寫器
If Not myXmlTextWriter Is Nothing
myXmlTextWriter.Close()
end if
End try
End Sub
private shared Sub FormatXml (reader as XmlTextReader, filename as String)
Dim piCount, docCount, commentCount, elementCount as Integer
Dim attributeCount, textCount, whitespaceCount as Integer
While reader.Read()
Select (reader.NodeType)
case XmlNodeType.ProcessingInstruction:
Format (reader, "ProcessingInstruction")
piCount += 1
case XmlNodeType.DocumentType:
Format (reader, "DocumentType")
docCount += 1
case XmlNodeType.Comment:
Format (reader, "Comment")
commentCount += 1
case XmlNodeType.Element:
Format (reader, "Element")
elementCount += 1
While reader.MoveToNextAttribute()
Format (reader, "Attribute")
end While
if (reader.HasAttributes)
attributeCount += reader.AttributeCount
end if
case XmlNodeType.Text:
Format (reader, "Text")
textCount += 1
case XmlNodeType.Whitespace:
whitespaceCount += 1
End Select
End While
' 顯示該文件的統計信息
Console.WriteLine ()
Console.WriteLine("{0} 文件的統計信息", filename)
Console.WriteLine ()
Console.WriteLine("處理指令:" piCount)
Console.WriteLine("文檔類型:" docCount)
Console.WriteLine("注釋:" commentCount)
Console.WriteLine("元素:" elementCount)
Console.WriteLine("屬性:" attributeCount)
Console.WriteLine("文本:" textCount)
Console.WriteLine("空白:" whitespaceCount)
End Sub
private shared Sub Format(byref reader as XmlTextReader , NodeType as String)
' 格式化輸出
Console.Write(reader.Depth " ")
Console.Write(reader.AttributeCount " ")
Dim i as Integer
for i = 0 to reader.Depth - 1
Console.Write(Strings.chr(9))
Next
Console.Write(reader.Prefix NodeType "" reader.Name "" reader.Value)
Console.WriteLine()
End Sub
End Class
End Namespace
參考:
//創建XMLdocument
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
// 從XML文件中加載XML
doc.Load(XmlPath);
//為doc的根節點創建子節點nodeA(沒有添加到根節點上!)
System.Xml.XmlNode nodeA = doc.CreateNode(System.Xml.XmlNodeType.Element, "SAMPLE_ADD", "SAMPLEURI_ADD");
//為子節點nodeA設置屬性
nodeA.Value = "SAMPLE VALUE ADD";
//將nodeA添加為doc的子節點
doc.AppendChild(nodeA);
//為nodeA節點創建子節點nodeAA(沒有添加到nodeA節點上!)
System.Xml.XmlNode nodeAA = nodeA.CreateNode(System.Xml.XmlNodeType.Element, "SAMPLE_ADD2", "SAMPLEURI_ADD2");
//為子節點nodeAA設置屬性
nodeAA.Value = "SAMPLE VALUE ADD2";
//將nodeAA添加為nodeA的子節點
nodeA.AppendChild(nodeAA);
//遍歷nodeA下面的所有子節點
foreach (System.Xml.XmlNode node in nodeA.ChildNodes)
{
//處理這些節點
}
//刪除節點的做法是遍歷該節點然后吧符合條件的刪除掉
foreach (System.Xml.XmlNode node in doc.ChildNodes)
{
// 將節點從父上刪除
doc.RemoveChild(node);
}
Dim?xmlDoc?As?New?System.Xml.XmlDocument
xmlDoc.Load("c:\xml.xml")?'載入xml文件
Dim?Items?As?Xml.XmlNodeList?=?xmlDoc.DocumentElement.SelectNodes("http://record/item")?'參數為xpath查詢串,前面斜杠,//:表示任何結點,/:表示根結點
For?Each?s?As?Xml.XmlNode?In?Items
Console.WriteLine(s.Attributes.GetNamedItem("id").Value??vbTab??s.InnerText)
Next
Dim path As String = PDA_PATH "ife.XML" ’PDA_PATH 為路徑
Dim ds As New DataSet
ds.ReadXml(path)
Dim dt As DataTable = ds.Tables.Item(0)
Dim blnY As Boolean = True
For Each row As DataRow In dt.Rows
If row.Item("Translation").ToString.ToUpper ="確認"Then
row.Item("Translation") =“替換”
blnY = False
Exit For
End If
Next
If blnY Then
MsgBox("輸入的XXX不存在,請重新輸入! ")
Return
End If
ds.WriteXml(path)
MessageBox.Show("修改數據并保存成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
或者
Dim xmlDoc As New XmlDocument()
'Dim nodeList As New XmlNodeList
xmlDoc.Load("life..xml") '加載
Dim nodeList As XmlNodeList = xmlDoc.SelectSingleNod.("UITranslations").ChildNodes '獲取bookstore節點的所有子節點
Dim xn As XmlNode
For Each xn In nodeList '遍歷所有子節點
Dim xe As XmlElement = CType(xn, XmlElement) '將子節點類型轉換為XmlElement類型
Dim nls As XmlNodeList = xe.ChildNodes '繼續獲取xe子節點的所有子節點
Dim xn1 As XmlNode
For Each xn1 In nls '遍歷
Dim xe2 As XmlElement = CType(xn1, XmlElement) '轉換類型
If xe2.Name = "Translation" Then '如果找到
xe2.InnerText ="替換"則修改
'Exit For Each '找到退出來就可以了
End If
Next xn1
Next xn
xmlDoc.Save("life.xml") '保存。
MessageBox.Show("修改XML成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
看能不能幫到你!
網頁題目:vb.net修改xml的簡單介紹
本文URL:http://www.yijiale78.com/article22/dooejjc.html
成都網站建設公司_創新互聯,為您提供網站排名、網站策劃、搜索引擎優化、網站維護、網站營銷、網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯