Item (XmlNodelist function): Difference between revisions

From m204wiki
Jump to navigation Jump to search
m (1 revision)
m (1 revision)
Line 20: Line 20:
if <tt>%nlis</tt> is an <var>XmlNodelist</var> in the following code:
if <tt>%nlis</tt> is an <var>XmlNodelist</var> in the following code:
<p class="code">For %i From 1 To %nlis:Count
<p class="code">For %i From 1 To %nlis:Count
  %nod = %nlis(%i)
<p class="code">%nod = %nlis(%i)
  ...
...
</p>
</p>
</p>
The preceding example is the same as this one, with the <var>Item</var> method name coded:
The preceding example is the same as this one, with the <var>Item</var> method name coded:
<p class="code">For %i From 1 To %nlis:Count
<p class="code">For %i From 1 To %nlis:Count
  %nod = %nlis:<var>Item</var>(%i)
<p class="code">%nod = %nlis:<var>Item</var>(%i)
  ...
...
</p>
</p>
</p>
===Example===
===Example===
Line 41: Line 43:
%doc = New
%doc = New
%doc:LoadXml('<top><a b="b1"><a1/></a> -
%doc:LoadXml('<top><a b="b1"><a1/></a> -
      <a><a2 b="b2"></a2></a></top>')
<p class="code"><a><a2 b="b2"></a2></a></top>')


</p>
%nlis = %doc:SelectNodes('//.')
%nlis = %doc:SelectNodes('//.')
For %i From 1 To %nlis:Count
For %i From 1 To %nlis:Count
  %nod = %nlis(%i)
<p class="code">%nod = %nlis(%i)
  %t = %nod:Type
%t = %nod:Type
  If %t EQ Root Then
If %t EQ Root Then
    Print '<var>Item</var> ' %i ': Root'
  Print '<var>Item</var> ' %i ': Root'
  ElseIf %t EQ Element Then
ElseIf %t EQ Element Then
    Print '<var>Item</var> ' %i ': Element' And %nod:QName
  Print '<var>Item</var> ' %i ': Element' And %nod:QName
  ElseIf %t EQ Attribute Then
ElseIf %t EQ Attribute Then
    Print '<var>Item</var> ' %i ': Attribute' And %nod:QName -
  Print '<var>Item</var> ' %i ': Attribute' And %nod:QName -
      With '="' With %nod:Value With '"'
    With '="' With %nod:Value With '"'
  Else
Else
    Print '<var>Item</var> ' %i ':' And %t:To<var>String</var>  -
  Print '<var>Item</var> ' %i ':' And %t:To<var>String</var>  -
      And '=' And %nod:Value
    And '=' And %nod:Value
  End If
End If
</p>
End For
End For


Line 72: Line 76:
<var>Item</var> 6: Element a2
<var>Item</var> 6: Element a2
<top>
<top>
  <a b="b1">
<p class="code"><a b="b1">
      <a1/>
  <a1/>
  </a>
</a>
  <a>
<a>
      <a2 b="b2"/>
  <a2 b="b2"/>
  </a>
</a>
</p>
</top>
</top>
</p>
</p>

Revision as of 22:33, 6 February 2011

Retrieve an item from this nodelist (XmlNodelist class)


This function creates an XmlNode from one of the items on an XmlNodelist.

Syntax

%nod = nodl:Item( number)

Syntax terms

%nod An XmlNode that points to the selected node.
nlis The XmlNodelist from which the item is taken.
num A positive integer that identifies which item to select.

Usage notes

Under Sirius Mods version 6.8 and later, the method name, Item, is not necessary on an XmlNodelist Item reference. For example (showing that the Item method name can be left off), if %nlis is an XmlNodelist in the following code:

For %i From 1 To %nlis:Count

%nod = %nlis(%i) ...

The preceding example is the same as this one, with the Item method name coded:

For %i From 1 To %nlis:Count

%nod = %nlis:Item(%i) ...

Example

This example prints the node type and the names and/or values of items on an XmlNodelist; %nod = %nlis(%i) implicitly uses the Item method:

Begin %i is Float %doc is Object XmlDoc %nod is Object XmlNode %nlis is object xmlnodelist %t Enumeration XmlNodeType %doc = New %doc:LoadXml('<top><a b="b1"><a1/></a> -

<a><a2 b="b2"></a2></a></top>')

%nlis = %doc:SelectNodes('//.') For %i From 1 To %nlis:Count

%nod = %nlis(%i) %t = %nod:Type If %t EQ Root Then Print 'Item ' %i ': Root' ElseIf %t EQ Element Then Print 'Item ' %i ': Element' And %nod:QName ElseIf %t EQ Attribute Then Print 'Item ' %i ': Attribute' And %nod:QName - With '="' With %nod:Value With '"' Else Print 'Item ' %i ':' And %t:ToString - And '=' And %nod:Value End If

End For

%doc:Print End

The example result follows:

Item 1: Root Item 2: Element top Item 3: Element a Item 4: Element a1 Item 5: Element a Item 6: Element a2 <top>

<a b="b1"> <a1/> </a> <a> <a2 b="b2"/> </a>

</top>

Request-Cancellation Errors

  • The selected item number (num) is not in the range from 1 to the number of items on the nodelist.

See also