<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_281) on Sun Jan 15 15:58:35 CET 2023 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NodeListModel (FreeMarker 2.3.32 API)</title>
<meta name="date" content="2023-01-15">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="NodeListModel (FreeMarker 2.3.32 API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":42,"i1":42,"i2":42,"i3":42,"i4":42,"i5":42,"i6":41,"i7":42,"i8":42};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/NodeListModel.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?freemarker/ext/jdom/NodeListModel.html" target="_top">Frames</a></li>
<li><a href="NodeListModel.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">freemarker.ext.jdom</div>
<h2 title="Class NodeListModel" class="title">Class NodeListModel</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>freemarker.ext.jdom.NodeListModel</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../freemarker/template/TemplateCollectionModel.html" title="interface in freemarker.template">TemplateCollectionModel</a>, <a href="../../../freemarker/template/TemplateHashModel.html" title="interface in freemarker.template">TemplateHashModel</a>, <a href="../../../freemarker/template/TemplateMethodModel.html" title="interface in freemarker.template">TemplateMethodModel</a>, <a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a>, <a href="../../../freemarker/template/TemplateScalarModel.html" title="interface in freemarker.template">TemplateScalarModel</a>, <a href="../../../freemarker/template/TemplateSequenceModel.html" title="interface in freemarker.template">TemplateSequenceModel</a></dd>
</dl>
<hr>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../../freemarker/ext/dom/NodeModel.html" title="class in freemarker.ext.dom"><code>NodeModel</code></a> instead.</span></div>
</div>
<br>
<pre>@Deprecated
public class <span class="typeNameLabel">NodeListModel</span>
extends java.lang.Object
implements <a href="../../../freemarker/template/TemplateHashModel.html" title="interface in freemarker.template">TemplateHashModel</a>, <a href="../../../freemarker/template/TemplateMethodModel.html" title="interface in freemarker.template">TemplateMethodModel</a>, <a href="../../../freemarker/template/TemplateCollectionModel.html" title="interface in freemarker.template">TemplateCollectionModel</a>, <a href="../../../freemarker/template/TemplateSequenceModel.html" title="interface in freemarker.template">TemplateSequenceModel</a>, <a href="../../../freemarker/template/TemplateScalarModel.html" title="interface in freemarker.template">TemplateScalarModel</a></pre>
<div class="block">Provides a template for wrapping JDOM objects. It is capable of storing not only
 a single JDOM node, but a list of JDOM nodes at once (hence the name).
 Each node is an instance of any of the core JDOM node classes (except namespaces,
 which are not supported at the moment), or String for representing text.
 See individual method documentation for exact details on how the class works. In
 short:
 <ul>
 <li><a href="../../../freemarker/ext/jdom/NodeListModel.html#getAsString--"><code>getAsString()</code></a> will render all contained nodes as XML fragment,
 <li><a href="../../../freemarker/ext/jdom/NodeListModel.html#exec-java.util.List-"><code>exec(List)</code></a> provides full XPath functionality implemented on top of
 the <a href="http://www.jaxen.org">Jaxen</a> library,</li>
 <li><a href="../../../freemarker/ext/jdom/NodeListModel.html#get-java.lang.String-"><code>get(String)</code></a> provides node traversal, copying and filtering - somewhat
 less expressive than XPath, however it does not require the external library and
 it evaluates somewhat faster</li>
 <li>being a <a href="../../../freemarker/template/TemplateCollectionModel.html" title="interface in freemarker.template"><code>TemplateCollectionModel</code></a> allows to iterate the contained node list, and</li>
 <li>being a <a href="../../../freemarker/template/TemplateSequenceModel.html" title="interface in freemarker.template"><code>TemplateSequenceModel</code></a> allows to access the contained nodes by index and query the node count.</li>
 </ul>
 
 <p><b>Note:</b> There is a JDOM independent re-implementation of this class:
   <a href="../../../freemarker/ext/xml/NodeListModel.html" title="class in freemarker.ext.xml"><code>freemarker.ext.xml.NodeListModel</code></a></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.freemarker.template.TemplateScalarModel">
<!--   -->
</a>
<h3>Fields inherited from interface&nbsp;freemarker.template.<a href="../../../freemarker/template/TemplateScalarModel.html" title="interface in freemarker.template">TemplateScalarModel</a></h3>
<code><a href="../../../freemarker/template/TemplateScalarModel.html#EMPTY_STRING">EMPTY_STRING</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.freemarker.template.TemplateModel">
<!--   -->
</a>
<h3>Fields inherited from interface&nbsp;freemarker.template.<a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a></h3>
<code><a href="../../../freemarker/template/TemplateModel.html#NOTHING">NOTHING</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../freemarker/ext/jdom/NodeListModel.html#NodeListModel-org.jdom.Document-">NodeListModel</a></span>(org.jdom.Document&nbsp;document)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">Creates a node list that holds a single <code>Document</code> node.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../freemarker/ext/jdom/NodeListModel.html#NodeListModel-org.jdom.Element-">NodeListModel</a></span>(org.jdom.Element&nbsp;element)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">Creates a node list that holds a single <code>Element</code> node.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../freemarker/ext/jdom/NodeListModel.html#NodeListModel-java.util.List-">NodeListModel</a></span>(java.util.List&nbsp;nodes)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">Creates a node list that holds a list of nodes.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../freemarker/ext/jdom/NodeListModel.html#NodeListModel-java.util.List-boolean-">NodeListModel</a></span>(java.util.List&nbsp;nodes,
             boolean&nbsp;copy)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">Creates a node list that holds a list of nodes.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/jdom/NodeListModel.html#exec-java.util.List-">exec</a></span>(java.util.List&nbsp;arguments)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">Applies an XPath expression to the node list and returns the resulting node list.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/jdom/NodeListModel.html#get-int-">get</a></span>(int&nbsp;i)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">Retrieves the i-th element of the node list.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/jdom/NodeListModel.html#get-java.lang.String-">get</a></span>(java.lang.String&nbsp;key)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">Provides node list traversal as well as special functions: filtering by name,
 filtering by node type, shallow-copying, and duplicate removal.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/jdom/NodeListModel.html#getAsString--">getAsString</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">This method returns the string resulting from concatenation
 of string representations of its nodes.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/jdom/NodeListModel.html#isEmpty--">isEmpty</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">Returns true if this model contains no nodes.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../freemarker/template/TemplateModelIterator.html" title="interface in freemarker.template">TemplateModelIterator</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/jdom/NodeListModel.html#iterator--">iterator</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">Retrieves a template model iterator that is used to iterate over the elements in this collection.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/jdom/NodeListModel.html#main-java.lang.String:A-">main</a></span>(java.lang.String[]&nbsp;args)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Will be removed (main method in a library, often classified as CWE-489 "Leftover Debug Code").</span></div>
</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/jdom/NodeListModel.html#registerNamespace-java.lang.String-java.lang.String-">registerNamespace</a></span>(java.lang.String&nbsp;prefix,
                 java.lang.String&nbsp;uri)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">Registers an XML namespace with this node list.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/jdom/NodeListModel.html#size--">size</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="NodeListModel-org.jdom.Document-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NodeListModel</h4>
<pre>public&nbsp;NodeListModel(org.jdom.Document&nbsp;document)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">Creates a node list that holds a single <code>Document</code> node.</div>
</li>
</ul>
<a name="NodeListModel-org.jdom.Element-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NodeListModel</h4>
<pre>public&nbsp;NodeListModel(org.jdom.Element&nbsp;element)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">Creates a node list that holds a single <code>Element</code> node.</div>
</li>
</ul>
<a name="NodeListModel-java.util.List-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NodeListModel</h4>
<pre>public&nbsp;NodeListModel(java.util.List&nbsp;nodes)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">Creates a node list that holds a list of nodes.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>nodes</code> - the list of nodes this template should hold. The created template
 will copy the passed nodes list, so changes to the passed list will not affect
 the model.</dd>
</dl>
</li>
</ul>
<a name="NodeListModel-java.util.List-boolean-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>NodeListModel</h4>
<pre>public&nbsp;NodeListModel(java.util.List&nbsp;nodes,
                     boolean&nbsp;copy)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">Creates a node list that holds a list of nodes.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>nodes</code> - the list of nodes this template should hold.</dd>
<dd><code>copy</code> - if true, the created template will copy the passed nodes list,
 so changes to the passed list will not affect the model. If false, the model
 will reference the passed list and will sense changes in it, although no
 operations on the list will be synchronized.</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="isEmpty--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isEmpty</h4>
<pre>public&nbsp;boolean&nbsp;isEmpty()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">Returns true if this model contains no nodes.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../freemarker/template/TemplateHashModel.html#isEmpty--">isEmpty</a></code>&nbsp;in interface&nbsp;<code><a href="../../../freemarker/template/TemplateHashModel.html" title="interface in freemarker.template">TemplateHashModel</a></code></dd>
</dl>
</li>
</ul>
<a name="getAsString--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAsString</h4>
<pre>public&nbsp;java.lang.String&nbsp;getAsString()
                             throws <a href="../../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">This method returns the string resulting from concatenation
 of string representations of its nodes. Each node is rendered using its XML
 serialization format, while text (String) is rendered as itself. This greatly
 simplifies creating XML-transformation templates, as to output a node contained
 in variable x as XML fragment, you simply write ${x} in the template.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../freemarker/template/TemplateScalarModel.html#getAsString--">getAsString</a></code>&nbsp;in interface&nbsp;<code><a href="../../../freemarker/template/TemplateScalarModel.html" title="interface in freemarker.template">TemplateScalarModel</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></code></dd>
</dl>
</li>
</ul>
<a name="get-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
<pre>public&nbsp;<a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a>&nbsp;get(java.lang.String&nbsp;key)
                  throws <a href="../../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">Provides node list traversal as well as special functions: filtering by name,
 filtering by node type, shallow-copying, and duplicate removal.
 While not as powerful as the full XPath support built into the
 <a href="../../../freemarker/ext/jdom/NodeListModel.html#exec-java.util.List-"><code>exec(List)</code></a> method, it does not require the external Jaxen
 library to be present at run time. Below are listed the recognized keys.
 In key descriptions, "applicable to this-and-that node type" means that if
 a key is applied to a node list that contains a node of non-applicable type
 a TemplateMethodModel will be thrown. However, you can use <tt>_ftype</tt>
 key to explicitly filter out undesired node types prior to applying the
 restricted-applicability key. Also "current nodes" means nodes contained in this
 set.
 <ul>
    <li><tt>*</tt> or <tt>_children</tt>: all direct element children of current nodes (non-recursive). Applicable
  to element and document nodes.</li>
    <li><tt>@*</tt> or <tt>_attributes</tt>: all attributes of current nodes. Applicable to elements only.</li>
    <li><tt>_content</tt> the complete content of current nodes (non-recursive).
  Applicable to elements and documents.</li>
    <li><tt>_text</tt>: the text of current nodes, one string per node (non-recursive).
  Applicable to elements, attributes, comments, processing instructions (returns its data)
  and CDATA sections. The reserved XML characters ('&lt;' and '&amp;') are escaped.</li>
    <li><tt>_plaintext</tt>: same as <tt>_text</tt>, but does not escape any characters,
  and instead of returning a NodeList returns a SimpleScalar.</li>
    <li><tt>_name</tt>: the names of current nodes, one string per node (non-recursive).
  Applicable to elements and attributes (returns their local name), 
  entities, processing instructions (returns its target), doctypes 
 (returns its public ID)</li>
    <li><tt>_qname</tt>: the qualified names of current nodes in <tt>[namespacePrefix:]localName</tt>
 form, one string per node (non-recursive). Applicable to elements and attributes</li>
    <li><tt>_cname</tt>: the canonical names of current nodes (namespace URI + local name),
 one string per node (non-recursive). Applicable to elements and attributes</li>
    <li><tt>_nsprefix</tt>: namespace prefixes of current nodes,
 one string per node (non-recursive). Applicable to elements and attributes</li>
    <li><tt>_nsuri</tt>: namespace URIs of current nodes,
 one string per node (non-recursive). Applicable to elements and attributes</li>
    <li><tt>_parent</tt>: parent elements of current nodes. Applicable to element, attribute, comment,
  entity, processing instruction.</li>
    <li><tt>_ancestor</tt>: all ancestors up to root element (recursive) of current nodes. Applicable
  to same node types as <tt>_parent</tt>.</li>
    <li><tt>_ancestorOrSelf</tt>: all ancestors of current nodes plus current nodes. Applicable
  to same node types as <tt>_parent</tt>.</li>
    <li><tt>_descendant</tt>: all recursive descendant element children of current nodes. Applicable to
  document and element nodes.
    <li><tt>_descendantOrSelf</tt>: all recursive descendant element children of current nodes
  plus current nodes. Applicable to document and element nodes.
    <li><tt>_document</tt>: all documents the current nodes belong to.
  Applicable to all nodes except text.
    <li><tt>_doctype</tt>: doctypes of the current nodes.
  Applicable to document nodes only.
    <li><tt>_fname</tt>: is a filter-by-name template method model. When called,
  it will yield a node list that contains only those current nodes whose name
  matches one of names passed as argument. Attribute names should NOT be prefixed with the
  at sign (@). Applicable on all node types, however has no effect on unnamed nodes.</li>
    <li><tt>_ftype</tt>: is a filter-by-type template method model. When called,
  it will yield a node list that contains only those current nodes whose type matches one
  of types passed as argument. You should pass a single string to this method
  containing the characters of all types to keep. Valid characters are:
  e (Element), a (Attribute), n (Entity), d (Document), t (DocType),
  c (Comment), p (ProcessingInstruction), x (text). If the string anywhere contains
  the exclamation mark (!), the filter's effect is inverted.</li>
    <li><tt>_type</tt>: Returns a one-character String SimpleScalar containing
    the typecode of the first node in the node list. Valid characters are:
  e (Element), a (Attribute), n (Entity), d (Document), t (DocType),
  c (Comment), p (ProcessingInstruction), x (text). If the type of the node
  is unknown, returns '?'. If the node list is empty, returns an empty string scalar.</li>
    <li><tt>_unique</tt>: a copy of the current nodes that keeps only the
  first occurrence of every node, eliminating duplicates. Duplicates can
  occur in the node list by applying uptree-traversals <tt>_parent</tt>,
  <tt>_ancestor</tt>, <tt>_ancestorOrSelf</tt>, and <tt>_document</tt>.
  I.e. <tt>foo._children._parent</tt> will return a node list that has
  duplicates of nodes in foo - each node will have the number of occurrences
  equal to the number of its children. In these cases, use
  <tt>foo._children._parent._unique</tt> to eliminate duplicates. Applicable
  to all node types.</li>
    <li><tt>_copy</tt>: a copy of the current node list. It is a shallow copy that
  shares the underlying node list with this node list, however it has a
  separate namespace registry, so it can be used to guarantee that subsequent
  changes to the set of registered namespaces does not affect the node lists
  that were used to create this node list. Applicable to all node types.</li>
    <li><tt>_registerNamespace(prefix, uri)</tt>: register a XML namespace
  with the specified prefix and URI for the current node list and all node
  lists that are derived from the current node list. After registering,
  you can use the <tt>nodelist["prefix:localname"]</tt> or
  <tt>nodelist["@prefix:localname"]</tt> syntaxes to reach elements and
  attributes whose names are namespace-scoped. Note that the namespace
  prefix need not match the actual prefix used by the XML document itself
  since namespaces are compared solely by their URI. You can also register
  namespaces from Java code using the
  <a href="../../../freemarker/ext/jdom/NodeListModel.html#registerNamespace-java.lang.String-java.lang.String-"><code>registerNamespace(String, String)</code></a> method.
 </li>
    <li><tt>@attributeName</tt>: named attributes of current nodes. Applicable to
  elements, doctypes and processing instructions. On doctypes it supports
  attributes <tt>publicId</tt>, <tt>systemId</tt> and <tt>elementName</tt>. On processing
  instructions, it supports attributes <tt>target</tt> and <tt>data</tt>, as
  well as any other attribute name specified in data as <tt>name="value"</tt> pair.
  The attribute nodes for doctype and processing instruction are synthetic, and
  as such have no parent. Note, however that <tt>@*</tt> does NOT operate on
  doctypes or processing instructions.</li>
    <li>any other key: element children of current nodes with name matching the key.
  This allows for convenience child traversal in <tt>book.chapter.title</tt> style syntax.
  Note that <tt>nodeset.childname</tt> is technically equivalent to
  <tt>nodeset._children._fname("childname")</tt>, but is both shorter to write
  and evaluates faster. Applicable to document and element nodes.</li>
 </ul>
 The order of nodes in the resulting set is the order of evaluation of the key
 on each node in this set from left to right. Evaluation of the key on a single
 node always yields the results in "natural" order (that of the document preorder
 traversal), even for uptree traversals. As a consequence, if this node list's nodes
 are listed in natural order, applying any of the keys will produce a node list that
 is also naturally ordered. As a special case, all node lists that are directly or
 indirectly generated from a single Document or Element node through repeated
 invocations of this method will be naturally ordered.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../freemarker/template/TemplateHashModel.html#get-java.lang.String-">get</a></code>&nbsp;in interface&nbsp;<code><a href="../../../freemarker/template/TemplateHashModel.html" title="interface in freemarker.template">TemplateHashModel</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - a key that identifies a required set of nodes</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new NodeListModel that represents the requested set of nodes.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></code></dd>
</dl>
</li>
</ul>
<a name="iterator--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>iterator</h4>
<pre>public&nbsp;<a href="../../../freemarker/template/TemplateModelIterator.html" title="interface in freemarker.template">TemplateModelIterator</a>&nbsp;iterator()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../freemarker/template/TemplateCollectionModel.html#iterator--">TemplateCollectionModel</a></code></span></div>
<div class="block">Retrieves a template model iterator that is used to iterate over the elements in this collection.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../freemarker/template/TemplateCollectionModel.html#iterator--">iterator</a></code>&nbsp;in interface&nbsp;<code><a href="../../../freemarker/template/TemplateCollectionModel.html" title="interface in freemarker.template">TemplateCollectionModel</a></code></dd>
</dl>
</li>
</ul>
<a name="get-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
<pre>public&nbsp;<a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a>&nbsp;get(int&nbsp;i)
                  throws <a href="../../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">Retrieves the i-th element of the node list.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../freemarker/template/TemplateSequenceModel.html#get-int-">get</a></code>&nbsp;in interface&nbsp;<code><a href="../../../freemarker/template/TemplateSequenceModel.html" title="interface in freemarker.template">TemplateSequenceModel</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the item at the specified index, or <code>null</code> if the index is out of bounds. Note that a
         <code>null</code> value is interpreted by FreeMarker as "variable does not exist", and accessing a
         missing variables is usually considered as an error in the FreeMarker Template Language, so the usage of
         a bad index will not remain hidden, unless the default value for that case was also specified in the
         template.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></code></dd>
</dl>
</li>
</ul>
<a name="size--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>size</h4>
<pre>public&nbsp;int&nbsp;size()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../freemarker/template/TemplateSequenceModel.html#size--">size</a></code>&nbsp;in interface&nbsp;<code><a href="../../../freemarker/template/TemplateSequenceModel.html" title="interface in freemarker.template">TemplateSequenceModel</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of items in the list.</dd>
</dl>
</li>
</ul>
<a name="exec-java.util.List-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>exec</h4>
<pre>public&nbsp;java.lang.Object&nbsp;exec(java.util.List&nbsp;arguments)
                      throws <a href="../../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">Applies an XPath expression to the node list and returns the resulting node list.
 In order for this method to work, your application must have access
 <a href="http://www.jaxen.org">Jaxen</a> library classes. The
 implementation does cache the parsed format of XPath expressions in a weak hash
 map, keyed by the string representation of the XPath expression. As the string
 object passed as the argument is usually kept in the parsed FreeMarker template,
 this ensures that each XPath expression is parsed only once during the lifetime
 of the FreeMarker template that contains it.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../freemarker/template/TemplateMethodModel.html#exec-java.util.List-">exec</a></code>&nbsp;in interface&nbsp;<code><a href="../../../freemarker/template/TemplateMethodModel.html" title="interface in freemarker.template">TemplateMethodModel</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>arguments</code> - the list of arguments. Must contain exactly one string that is
 the XPath expression you wish to apply. The XPath expression can use any namespace
 prefixes that were defined using the <a href="../../../freemarker/ext/jdom/NodeListModel.html#registerNamespace-java.lang.String-java.lang.String-"><code>registerNamespace(String, String)</code></a>
 method or the <code>nodelist._registerNamespace(prefix, uri)</code> expression in the
 template.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a NodeListModel representing the nodes that are the result of application
 of the XPath to the current node list.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></code></dd>
</dl>
</li>
</ul>
<a name="registerNamespace-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerNamespace</h4>
<pre>public&nbsp;void&nbsp;registerNamespace(java.lang.String&nbsp;prefix,
                              java.lang.String&nbsp;uri)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">Registers an XML namespace with this node list. Once registered, you can
 refer to the registered namespace using its prefix in the
 <a href="../../../freemarker/ext/jdom/NodeListModel.html#get-java.lang.String-"><code>get(String)</code></a> method from this node list and all other
 node lists that are derived from this node list. Use the
 <tt>nodelist["prefix:localname"]</tt> or the
 <tt>nodelist["@prefix:localname"]</tt> syntax to reach elements and
  attributes whose names are namespace-scoped. Note that the namespace
 prefix need not match the actual prefix used by the XML document itself
 since namespaces are compared solely by their URI. You can also register
 namespaces during template evaluation using the
 <tt>nodelist._registerNamespace(prefix, uri)</tt> syntax in the template.
 This mechanism is completely independent from the namespace declarations
 in the XML document itself; its purpose is to give you an easy way
 to refer to namespace-scoped elements in <a href="../../../freemarker/ext/jdom/NodeListModel.html#get-java.lang.String-"><code>get(String)</code></a> and
 in XPath expressions passed to <a href="../../../freemarker/ext/jdom/NodeListModel.html#exec-java.util.List-"><code>exec(List)</code></a>. Note also that
 the namespace prefix registry is shared among all node lists that
 are created from a single node list - modifying the registry in one
 affects all others as well. If you want to obtain a namespace 
 "detached" copy of the node list, use the <code>_copy</code> key on
 it (or call <code>nodeList.get("_copy")</code> directly from your
 Java code. The returned node list has all the namespaces that the
 original node list has, but they can be manipulated independently
 thereon.</div>
</li>
</ul>
<a name="main-java.lang.String:A-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>main</h4>
<pre>@Deprecated
public static&nbsp;void&nbsp;main(java.lang.String[]&nbsp;args)
                              throws java.lang.Exception</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Will be removed (main method in a library, often classified as CWE-489 "Leftover Debug Code").</span></div>
<div class="block">Loads a template from a file passed as the first argument, loads an XML
 document from the standard input, passes it to the template as variable
 <tt>document</tt> and writes the result of template processing to
 standard output.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/NodeListModel.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?freemarker/ext/jdom/NodeListModel.html" target="_top">Frames</a></li>
<li><a href="NodeListModel.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
