Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//package com.java2s;
//License from project: Apache License 

import java.util.ArrayList;

import javax.xml.namespace.QName;

import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathFactory;

import org.w3c.dom.Element;

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

public class Main {
    public static final String XPATH_FACTORY = "net.sf.saxon.xpath.XPathFactoryImpl";

    public static ArrayList<String> getNodeListAttValAsStringCol(final String xPath, final Node node,
            final String attrName) throws Exception {
        ArrayList<String> retV = new ArrayList<String>();

        NodeList nl = getNodesListXpathNode(xPath, node);
        int l = nl.getLength();
        Element e = null;
        String val = "";

        for (int i = 0; i < l; i++) {
            e = (Element) nl.item(i);
            if (e.getNodeType() == Node.ELEMENT_NODE) {
                val = e.getAttribute(attrName);
                if (val != null && val.length() > 0) {
                    retV.add(val);
                }
            }
        }
        return retV;
    }

    public static NodeList getNodesListXpathNode(final String xPath, final Node node) throws Exception {
        return (NodeList) getNodesListXpath(xPath, node, "", "", XPathConstants.NODESET);
    }

    /**
     * 
     * @param xPathS
     * @param node
     * @param nsuri
     * @param pre
     * @param returnType
     * @return Return type is one of XPathConstants .BOOLEAN, .NODE, .NODESET,
     *         .NUMBER, .STRING
     * @throws Exception
     */
    public static Object getNodesListXpath(final String xPathS, final Node node, final String nsuri,
            final String pre, final QName returnType) throws Exception {
        Object matches = null;
        System.setProperty("javax.xml.xpath.XPathFactory:" + XPathConstants.DOM_OBJECT_MODEL, XPATH_FACTORY);

        XPathFactory xpathFactory = XPathFactory.newInstance(XPathConstants.DOM_OBJECT_MODEL);
        XPath xpath = xpathFactory.newXPath();
        XPathExpression xpe = xpath.compile(xPathS);
        matches = xpe.evaluate(node, returnType);

        return matches;
    }
}