Q:

Read XML in VB.net

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 settings, it looks like so:
<? xml version="1.0" encoding="utf-8"? >
<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>

How can I use vb.net to get each element and return a specific value that I want?  Per se, I'd like to return <number> (under <store>) in textbox1, and <emailbody> (under <emailsettings>) in textbox2. 
Help pleaseeeeee!  Thanks :)

A:

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

A:

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

