[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 520
  • Last Modified:

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>
0
Ray Turner
Asked:
Ray Turner
  • 2
  • 2
2 Solutions
 
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

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now