Read XML in VB.net

后端 未结 4 2095
渐次进展
渐次进展 2021-02-09 08:47

I have googled for the last hour or so with no luck (I\'d like to think I\'m a great googler too!), so here I am.

I have an XML file that I\'m using for my programs sett

相关标签:
4条回答
  • 2021-02-09 09:28

    Here's a Console app using the VB.Net XML Literal support.

    Module Module1
    
        Sub Main()
    
            Dim xElem = <config>
                           <store>
                               <number>0323</number>
                               <address>address</address>
                               <phone>phone</phone>
                           </store>
    
                           <emailsettings>
                               <emailfrom>emailfrom</emailfrom>
                               <emailpass>pass</emailpass>
                               <emailsubject>received</emailsubject>
                               <smtpserver>smtp.gmail.com</smtpserver>
                               <smtpport>587</smtpport>
                               <enablessl>true</enablessl>
                               <emailbody>package received</emailbody>
                           </emailsettings>
                           <dbconfig>
                               <dbpath>path</dbpath>
                           </dbconfig>
                       </config>
    
            Dim number = xElem.<store>.<number>.Value
            Dim emailbody = xElem.<emailsettings>.<emailbody>.Value
    
            Console.WriteLine(String.Format("Number={0}", number))
            Console.WriteLine(String.Format("emailbody={0}", emailbody))
            Console.ReadLine()
    
            '--- What it'd look like if you loaded from a file using XDocument.Load
            Dim xDoc = XDocument.Load(New IO.StringReader(xElem.ToString))
            number = xDoc.Root.<store>.<number>.Value
            emailbody = xDoc.Root.<emailsettings>.<emailbody>.Value
    
            Console.WriteLine(String.Format("Number={0}", number))
            Console.WriteLine(String.Format("emailbody={0}", emailbody))
            Console.ReadLine()
    
    
        End Sub
    
    End Module
    

    The results will be:

    Number=0323
    emailbody=package received
    
    Number=0323
    emailbody=package received
    
    0 讨论(0)
  • 2021-02-09 09:31

    Ah, a perfect example for showing off the powerful XML features of VB.NET with Framework 3.5:

    Sub Main()
        Dim xml = XDocument.Load("config.xml")
        Console.WriteLine("Number: " & xml.<config>.<store>.<number>.Value)
        Console.WriteLine("Body: " & xml.<config>.<emailsettings>.<emailbody>.Value)
    End Sub
    

    yields:

    Number: 0323
    Body: package received
    
    0 讨论(0)
  • 2021-02-09 09:33

    If you are familiar with datasets and datatables, this is an easy way to do it:

    Dim DS As New DataSet
    DS.ReadXml("Data.xml")
    

    DataSets can read any XML. I even use this to call rest-enabled XML services.

    0 讨论(0)
  • 2021-02-09 09:37

    You can use XML Serialization. Create classes that represent your XML structure and use the XML Serialization Class to deserialize the data. Once you have done that you can use the data in your application.

    Below is a link to an example from MSDN:

    http://msdn.microsoft.com/en-us/library/ms950721.aspx

    0 讨论(0)
提交回复
热议问题