Java XML NodeList combine(final NodeList... nls)

Here you can find the source of combine(final NodeList... nls)

Description

Provides a NodeList of multiple nodelists

License

Open Source License

Declaration

public static NodeList combine(final NodeList... nls) 

Method Source Code

//package com.java2s;
/*/*from w  w  w .j a v a 2s.com*/
 * #%L
 * Alfresco Repository
 * %%
 * Copyright (C) 2005 - 2016 Alfresco Software Limited
 * %%
 * This file is part of the Alfresco software. 
 * If the software was purchased under a paid Alfresco license, the terms of 
 * the paid license agreement will prevail.  Otherwise, the software is 
 * provided under the following open source license terms:
 * 
 * Alfresco is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * Alfresco is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 * 
 * You should have received a copy of the GNU Lesser General Public License
 * along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
 * #L%
 */

import org.w3c.dom.*;

public class Main {
    /**
     * Provides a NodeList of multiple nodelists
     */
    public static NodeList combine(final NodeList... nls) {

        return new NodeList() {
            public Node item(final int index) {
                int offset = 0;
                for (int i = 0; i < nls.length; i++) {
                    if (index - offset < nls[i].getLength()) {
                        return nls[i].item(index - offset);
                    } else {
                        offset += nls[i].getLength();
                    }
                }
                return null;
            }

            public int getLength() {
                int result = 0;
                for (int i = 0; i < nls.length; i++) {
                    result += nls[i].getLength();
                }
                return result;
            }
        };
    }
}

Related

  1. addAll(final Node dst, final NodeList src)
  2. asList(final NodeList scripts)
  3. asList(NodeList nodeList)
  4. canonizeNodeList(NodeList nodelist)
  5. combineNodeLists(NodeList successfulReportList, NodeList failedAssertList)
  6. containsElementByValue(NodeList elements, String value)
  7. containsNature(NodeList nodes, String nature)
  8. convertNodelistToSet(NodeList xpathNodeSet)