Linq to XML Using Visual Basic

How do I use Linq to get a list of countries that start with the letter 'B'?

Here's the data:

<?xml version="1.0" standalone="yes"?>
<NewDataSet>
  <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
      <xs:complexType>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element name="Table1">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="ID" type="xs:int" minOccurs="0" />
                <xs:element name="CountryName" minOccurs="0">
                  <xs:simpleType>
                    <xs:restriction base="xs:string">
                      <xs:maxLength value="255" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:complexType>
    </xs:element>
  </xs:schema>
  <Table1>
    <ID>1</ID>
    <CountryName>Afghanistan</CountryName>
  </Table1>
  <Table1>
    <ID>2</ID>
    <CountryName>Albania</CountryName>
  </Table1>
  <Table1>
    <ID>3</ID>
    <CountryName>Algeria</CountryName>
  </Table1>
  <Table1>
    <ID>4</ID>
    <CountryName>Andorra</CountryName>
  </Table1>
  <Table1>
    <ID>5</ID>
    <CountryName>Angola</CountryName>
  </Table1>
  <Table1>
    <ID>6</ID>
    <CountryName>Antigua and Barbuda</CountryName>
  </Table1>
  <Table1>
    <ID>7</ID>
    <CountryName>Argentina</CountryName>
  </Table1>
  <Table1>
    <ID>8</ID>
    <CountryName>Armenia</CountryName>
  </Table1>
  <Table1>
    <ID>9</ID>
    <CountryName>Australia</CountryName>
  </Table1>
  <Table1>
    <ID>10</ID>
    <CountryName>Austria</CountryName>
  </Table1>
  <Table1>
    <ID>11</ID>
    <CountryName>Azerbaijan</CountryName>
  </Table1>
  <Table1>
    <ID>12</ID>
    <CountryName>Bahrain</CountryName>
  </Table1>
  <Table1>
    <ID>13</ID>
    <CountryName>Bangladesh</CountryName>
  </Table1>
  <Table1>
    <ID>14</ID>
    <CountryName>Barbados</CountryName>
  </Table1>
  <Table1>
    <ID>15</ID>
    <CountryName>Belarus</CountryName>
  </Table1>
  <Table1>
    <ID>16</ID>
    <CountryName>Belgium</CountryName>
  </Table1>
  <Table1>
    <ID>17</ID>
    <CountryName>Belize</CountryName>
  </Table1>
  <Table1>
    <ID>18</ID>
    <CountryName>Benin</CountryName>
  </Table1>
  <Table1>
    <ID>19</ID>
    <CountryName>Bhutan</CountryName>
  </Table1>
  <Table1>
    <ID>20</ID>
    <CountryName>Bolivia</CountryName>
  </Table1>
  <Table1>
    <ID>21</ID>
    <CountryName>Bosnia and Herzegovina</CountryName>
  </Table1>
  <Table1>
    <ID>22</ID>
    <CountryName>Botswana</CountryName>
  </Table1>
  <Table1>
    <ID>23</ID>
    <CountryName>Brazil</CountryName>
  </Table1>
  <Table1>
    <ID>24</ID>
    <CountryName>Brunei</CountryName>
  </Table1>
  <Table1>
    <ID>25</ID>
    <CountryName>Bulgaria</CountryName>
  </Table1>
  <Table1>
    <ID>26</ID>
    <CountryName>Burkina Faso</CountryName>
  </Table1>
  <Table1>
    <ID>27</ID>
    <CountryName>Burundi</CountryName>
  </Table1>
  <Table1>
    <ID>28</ID>
    <CountryName>Cambodia</CountryName>
  </Table1>
  <Table1>
    <ID>29</ID>
    <CountryName>Cameroon</CountryName>
  </Table1>
  <Table1>
    <ID>30</ID>
    <CountryName>Canada</CountryName>
  </Table1>
 </NewDataSet>
Ray TurnerSenior ConsultantAsked:
Who is Participating?
 
käµfm³d 👽Commented:
Here is one example:

Module Module1

    Sub Main()
        Dim query = From country In System.Xml.Linq.XDocument.Load("input.xml").Descendants("CountryName") _
                    Where country.Value.StartsWith("B") _
                    Select country.Value

        For Each countryName In query
            Console.WriteLine(countryName)
        Next

        Console.ReadKey()
    End Sub

End Module

Open in new window

0
 
Ray TurnerSenior ConsultantAuthor Commented:
I got following error.  How do I fix?

Expression of type 'System.Collections.Generic.IEnumerable(Of System.Xml.Linq..XElement)' is not queryable
0
 
käµfm³d 👽Commented:
Sorry about that. Add Imports System.Linq to the top of your file.
0
 
Ray TurnerSenior ConsultantAuthor Commented:
Thanks!!!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.