以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 XML源码及示例(仅原创和转载) 』  (http://bbs.xml.org.cn/list.asp?boardid=32)
----  如何用XmltextWriter与XmlDocument两者创建同一文档  (http://bbs.xml.org.cn/dispbbs.asp?boardid=32&rootid=&id=17789)


--  作者:wgm1084
--  发布时间:4/30/2005 5:19:00 PM

--  如何用XmltextWriter与XmlDocument两者创建同一文档
用XmltextWriter创建文档
经调试可用示例代码:
Imports System
Imports System.Xml
Imports System.Text

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Submit.Enabled = True
        write = False
    End Sub

    Private Sub Form1_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed
        If write Then
            xw.WriteEndElement()
            xw.WriteEndDocument()
            xw.Close()
        End If
    End Sub

    Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click

        If XmlFileName.Text = "" Then
            MsgBox("请输入Xml文档名!")
            Return
        End If

        xw = New XmlTextWriter(XmlFileName.Text, Encoding.UTF8)
        XmlFileName.Text = ""
       
Try
            xw.Formatting = Formatting.Indented
            xw.WriteStartDocument()
            xw.WriteStartElement("电话簿")
            TreeView1.Nodes.Add("电话簿")
            write = True
            stutarstring = "文档创建成功!"
            StatusBar1.Text = stutarstring
            MsgBox("文档创建成功!")

            XmlFileName.Enabled = True
            Me.button1.Enabled = True

        Catch ex As Exception
            MsgBox(ex.Message.ToString())
            StatusBar1.Text = ex.Message.ToString()
        End Try
    End Sub

    Private Sub Submit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Submit.Click

        If PersonName.Text = "" Or telcode.Text = "" Or Sex.Text = "" Or Category.Text = "" Then
            MsgBox("请输入各类信息,缺一不可!")
            Return
        End If

   Try
           
            xw.WriteStartElement("个人信息")
            xw.WriteElementString("姓名", PersonName.Text)
            xw.WriteElementString("性别", Sex.Text)
            xw.WriteElementString("类别", Category.Text)
            xw.WriteElementString("电话号码", telcode.Text)
           xw.WriteEndElement()

            Dim ParentNode As TreeNode
            ParentNode = TreeView1.Nodes.Add("个人信息")
            ParentNode.Nodes.Add(PersonName.Text)
            ParentNode.Nodes.Add(Sex.Text)
            ParentNode.Nodes.Add(Category.Text)
            ParentNode.Nodes.Add(telcode.Text)

           
            MessageBox.Show("数据提交成功!")
            stutarstring = "数据提交成功!"
            StatusBar1.Text = stutarstring

        Catch ex As Exception
            MessageBox.Show(ex.Message.ToString())
            StatusBar1.Text = ex.Message.ToString()
        End Try
    End Sub

用XmlDocument示例代码:

Imports System.Xml
Imports System.text
Imports System.io

Dim filename As String = "classinfo.xml"

    Dim pi As XmlProcessingInstruction
    Dim droot, sroot As XmlNode
    Dim sname, sbirth, sadress, swork As XmlNode
    Dim snametext, sbirthtext, sadresstext, sworktext As XmlText

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ' Try
        Try
            Dim doc As New XmlDocument

            If File.Exists(filename) Then

                doc.Load(filename)
                droot = doc.DocumentElement
            Else 'File.Exists(filename)
                Dim PItext As String = "version='1.0' encoding='utf-8'"
                pi = doc.CreateProcessingInstruction("xml", PItext)
                doc.AppendChild(pi)

                droot = doc.CreateNode(XmlNodeType.Element, "classinfo", Nothing)
                doc.PrependChild(droot)

            End If

            sroot = doc.CreateNode(XmlNodeType.Element, "个人信息", Nothing)

            sname = doc.CreateNode(XmlNodeType.Element, "姓名", Nothing)
            snametext = doc.CreateTextNode(TextBox1.Text)
            sname.AppendChild(snametext)

            sbirth = doc.CreateNode(XmlNodeType.Element, "出生年月", Nothing)
            sbirthtext = doc.CreateTextNode(TextBox2.Text)
            sbirth.AppendChild(sbirthtext)

            sadress = doc.CreateNode(XmlNodeType.Element, "联系方法", Nothing)
            sadresstext = doc.CreateTextNode(TextBox3.Text)
            sadress.AppendChild(sadresstext)

            swork = doc.CreateNode(XmlNodeType.Element, "工作单位", Nothing)
            sworktext = doc.CreateTextNode(TextBox4.Text)
            swork.AppendChild(sworktext)

            sroot.AppendChild(sname)
            sroot.AppendChild(sbirth)
            sroot.AppendChild(sadress)
            sroot.AppendChild(swork)
            droot.AppendChild(sroot)
            doc.AppendChild(droot)

            doc.Save(filename)
            'TextBox5.Text = filename

            ' Catch ex As Exception
            'MsgBox(ex.Message.ToString)
            'End Try
            Dim f As StreamReader = New StreamReader(filename)
            Dim sr As String = f.ReadToEnd
            TextBox5.Text = sr
            f.Close()

        Catch ex As Exception
            MsgBox(ex.Message.ToString)
        End Try
    End Sub


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
78.125ms