none
vb.net 2008 xml 讀取 空白 消失 RRS feed

  • 問題

  • 各位前輩好:

    小弟 程式碼如下,寫入的部分,有看到空白被填入。

    在讀取的部分,有數值都沒問題,只是我在某一個欄位 打了"   ",無法讀取回來(變成 ""),是小弟哪裡寫錯了嗎?

     Public Sub WriteDBStrXML()

            Dim doc As New XmlDocument
            Dim mydataset As XmlElement = doc.CreateElement("DataSet_Parameter")
            doc.AppendChild(mydataset) '  //建立子節點

            Dim mytable As XmlElement = doc.CreateElement("DataTable_Parameter")

            mydataset.AppendChild(mytable)   ' //加入至DataSet節點底下

            Dim field1 As XmlElement = doc.CreateElement("Txt_datasource")
            Dim field2 As XmlElement = doc.CreateElement("Txt_database")

            Dim field3 As XmlElement = doc.CreateElement("Txt_Id")
            Dim field4 As XmlElement = doc.CreateElement("Txt_Pwd")


            field1.InnerText = Txt_datasource.Text
            mytable.AppendChild(field1)

            field2.InnerText = Txt_database.Text
            mytable.AppendChild(field2)

            field3.InnerText = Txt_Id.Text
            mytable.AppendChild(field3)

            field4.InnerText = Txt_Pwd.Text
            mytable.AppendChild(field4)

            doc.Save(mypath + "\SYS\DB_parameter.xml")

        End Sub

        Public Sub ReadDBStrXML()

            Dim doc As New XmlDocument
            If Not File.Exists(mypath + "\SYS\DB_parameter.xml") Then Exit Sub

            doc.Load(mypath + "\SYS\DB_parameter.xml")

            Dim root As XmlElement = doc.DocumentElement
            Dim digitlist As XmlNodeList

            digitlist = root.GetElementsByTagName("Txt_datasource")
            Txt_datasource.Text = digitlist.ItemOf(0).InnerText

            digitlist = root.GetElementsByTagName("Txt_database")
            Txt_database.Text = digitlist.ItemOf(0).InnerText

            digitlist = root.GetElementsByTagName("Txt_Id")
            Txt_Id.Text = digitlist.ItemOf(0).InnerText

            digitlist = root.GetElementsByTagName("Txt_Pwd")
            Txt_Pwd.Text = digitlist.ItemOf(0).InnerText

        End Sub


    每天都在複製貼上,什麼時候才能自己寫出來~~哎.....


    2012年7月13日 上午 06:03

解答

所有回覆

  • 暂时我用控制台程序无法重现您的错误,我简化了你的代码,如下所示:

    Module Module1
     
        Sub Main()
            Dim doc As New XmlDocument
            Dim mydataset As XmlElement = doc.CreateElement("DataSet_Parameter")
            doc.AppendChild(mydataset) '  //建立子節點
     
            Dim mytable As XmlElement = doc.CreateElement("DataTable_Parameter")
     
            mydataset.AppendChild(mytable)   ' //加入至DataSet節點底下
     
            Dim field1 As XmlElement = doc.CreateElement("Txt_datasource")
            Dim field2 As XmlElement = doc.CreateElement("Txt_database")
     
            Dim field3 As XmlElement = doc.CreateElement("Txt_Id")
            Dim field4 As XmlElement = doc.CreateElement("Txt_Pwd")
     
     
            field1.InnerText = "台湾朋友,你好 啊"   '“啊”前有空格
            mytable.AppendChild(field1)
     
            field2.InnerText = "大陆朋友,你好 "
            mytable.AppendChild(field2)
     
            field3.InnerText = "中国朋友,你好 "
            mytable.AppendChild(field3)
     
            field4.InnerText = "世界朋友,你好 "
            mytable.AppendChild(field4)
     
            doc.Save("c:\\try.xml")
     
            doc = New XmlDocument
     
            doc.Load("c:\try.xml")
     
            Dim root As XmlElement = doc.DocumentElement
            Dim digitlist As XmlNodeList
     
            digitlist = root.GetElementsByTagName("Txt_datasource")
            Console.WriteLine(digitlist.ItemOf(0).InnerText)
         End Sub
     End Module

    运行结果:

    注意“你好”和“啊”之间有空格的。


    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处


    2012年7月13日 上午 06:24
  • 编程志愿者 你好, 我是直接

    程式碼

    寫入

     Dim field4 As XmlElement = doc.CreateElement("Txt_Pwd")

    field4.InnerText = "    "
    mytable.AppendChild(field4)

    讀取

    digitlist = root.GetElementsByTagName("Txt_Pwd")
    Txt_Pwd.Text = digitlist.ItemOf(0).InnerText

    Txt_Pwd.Text得到的值變成為""(空字串了)


    每天都在複製貼上,什麼時候才能自己寫出來~~哎.....

    2012年7月13日 上午 07:52
  • 設定 XmlDocument.PreserveWhiteSpace = true。

    http://msdn.microsoft.com/zh-tw/library/system.xml.xmldocument.preservewhitespace(VS.80).aspx


    學習不是查個 Google 套個書上的範例就算了,而是去熟悉了解每個程式碼背後的意義,否則就算學個幾百年,它也不會是你的。
    =================================
    小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
    雲端學堂Facebook: http://www.facebook.com/studyazure

    2012年7月13日 上午 07:59
    版主
  • 謝謝前輩,小弟 OK 了

    每天都在複製貼上,什麼時候才能自己寫出來~~哎.....

    2012年7月13日 上午 08:10