Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//package com.java2s;
/*
 * JEF - Copyright 2009-2010 Jiyi (mr.jiyi@gmail.com)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import java.util.ArrayList;

import java.util.List;

import org.w3c.dom.Document;
import org.w3c.dom.DocumentFragment;
import org.w3c.dom.Element;

import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class Main {

    public static List<Element> getElementsByTagNames(Node node, String... tagName) {
        List<Element> nds = new ArrayList<Element>();
        if (tagName.length == 0)
            tagName = new String[] { "" };
        if (node.getNodeType() == Node.ELEMENT_NODE) {
            Element doc = (Element) node;
            for (String elementName : tagName) {
                nds.addAll(toElementList(doc.getElementsByTagName(elementName)));
            }
        } else if (node instanceof Document) {
            Document doc = ((Document) node);
            for (String elementName : tagName) {
                nds.addAll(toElementList(doc.getElementsByTagName(elementName)));
            }
        } else if (node instanceof DocumentFragment) {
            Document doc = ((DocumentFragment) node).getOwnerDocument();
            for (String elementName : tagName) {
                nds.addAll(toElementList(doc.getElementsByTagName(elementName)));
            }
        } else {
            throw new IllegalArgumentException("a node who doesn't support getElementsByTagName operation.");
        }
        return nds;
    }

    public static List<Element> toElementList(NodeList nds) {
        List<Element> list = new ArrayList<Element>();
        for (int i = 0; i < nds.getLength(); i++) {
            Node child = nds.item(i);
            if (child.getNodeType() == Node.ELEMENT_NODE) {
                list.add((Element) child);
            }
        }
        return list;
    }
}