Class

# XMLNodeList

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

## Description

Stores the results of an XQL query done by the `XQL<xmlnode.xql>` method of the `XMLNode</api/text/xml/xmlnode>` class.

## Properties

<div class="rst-class">

table-centered_columns_3_and_4

</div>

| Name                               | Type                               | Read-Only | Shared |
|------------------------------------|------------------------------------|-----------|--------|
| `LastError<xmlnodelist.lasterror>` | `Integer</api/data_types/integer>` |           |        |
| `Length<xmlnodelist.length>`       | `Integer</api/data_types/integer>` |           |        |

## Methods

<div class="rst-class">

table-centered_column_4

</div>

| Name                             | Parameters                                      | Returns                          | Shared |
|----------------------------------|-------------------------------------------------|----------------------------------|--------|
| `Item<xmlnodelist.item>`         | Index As `Integer</api/data_types/integer>`     | `XMLNode</api/text/xml/xmlnode>` |        |
| `ToString<xmlnodelist.tostring>` | \[tagName As `String</api/data_types/string>`\] | `String</api/data_types/string>` |        |

## Property descriptions

<div id="xmlnodelist.lasterror">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLNodeList.LastError

**LastError** As `Integer</api/data_types/integer>`

> The last error code that was received.

<div id="xmlnodelist.length">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLNodeList.Length

**Length** As `Integer</api/data_types/integer>`

> The number of nodes in the list.

## Method descriptions

<div id="xmlnodelist.item">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLNodeList.Item

**Item**(Index As `Integer</api/data_types/integer>`) As `XMLNode</api/text/xml/xmlnode>`

> Retrieves the specified XML node from the list and returns it as an `XMLNode</api/text/xml/xmlnode>`. The *Index* parameter is zero-based.

<div id="xmlnodelist.tostring">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLNodeList.ToString

**ToString**(\[tagName As `String</api/data_types/string>`\]) As `String</api/data_types/string>`

Returns a `String</api/data_types/string>` representation of the nodes. The optional parameter *tagName* puts a tag around the NodeList to make it parsable.

## Sample code

The example code below uses this XML. Assign it to a constant called `kTestXml`:

``` xml
<?xml version="1.0" encoding="UTF-8"?>
<League>
  <Team name="Seagulls">
      <Player name="Bob" position="1B" />
      <Player name="Tom" position="2B" />
  </Team>
  <Team name="Pigeons">
      <Player name="Bill" position="1B" />
      <Player name="Tim" position="2B" />
  </Team>
  <Team name="Crows">
      <Player name="Ben" position="1B" />
      <Player name="Ty" position="2B" />
  </Team>
</League>
```

To get all the player names, you can use "//Player" as the query and loop through the returned \`XMLNodeList\`:

``` xojo
' Load XML
Var xml As New XmlDocument
Try
  xml.LoadXml(kTestXml)
Catch e As XmlException
  MessageBox("XML error: " + e.Message)
End Try

' Display all the Player names
Var nodes As XmlNodeList
nodes = xml.XQL("//Player") ' Find all Player nodes in XML

' Loop through results and display each name attribute
Var node As XmlNode
For i As Integer = 0 To nodes.Length - 1
  node = nodes.Item(i)
  MessageBox("Player: " + node.GetAttribute("name"))
Next
```

## Compatibility

|                       |     |
|-----------------------|-----|
| **Project Types**     | All |
| **Operating Systems** | All |

<div class="seealso">

`Object</api/data_types/additional_types/object>` parent class; `XMLNode</api/text/xml/xmlnode>` class, `XMLNode.XQL<xmlnode.xql>` method

</div>
