Java tutorial
//package com.java2s; /** * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright (c) 2005 Sun Microsystems Inc. All Rights Reserved * * The contents of this file are subject to the terms * of the Common Development and Distribution License * (the License). You may not use this file except in * compliance with the License. * * You can obtain a copy of the License at * https://opensso.dev.java.net/public/CDDLv1.0.html or * opensso/legal/CDDLv1.0.txt * See the License for the specific language governing * permission and limitations under the License. * * When distributing Covered Code, include this CDDL * Header Notice in each file and include the License file * at opensso/legal/CDDLv1.0.txt. * If applicable, add the following below the CDDL Header, * with the fields enclosed by brackets [] replaced by * your own identifying information: * "Portions Copyrighted [year] [name of copyright owner]" * * $Id: XMLUtils.java,v 1.5 2008-06-25 05:41:28 qcheng Exp $ * */ import java.util.HashSet; import java.util.Set; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class Main { /** * This method parse an Attributes tag, DTD for Attribute is as follows. * * <pre> * < !-- This DTD defines the DPro Attribute tag. * Unique Declaration name for DOCTYPE tag: * "Directory Pro 5.0 Attributes DTD" * --> * < !ELEMENT Attributes (Attribute)+> * < !ELEMENT Attribute EMPTY> * < !ATTLIST Attribute * name NMTOKEN #REQUIRED * > * </pre> * * @param n * Node * @return Set Set of the attribute names */ public static Set parseAttributesTag(Node n) { // get Attribute node list NodeList attributes = n.getChildNodes(); final int numAttributes = attributes.getLength(); if (numAttributes == 0) { return null; } Set set = new HashSet(); for (int l = 0; l < numAttributes; l++) { // get next attribute Node attr = attributes.item(l); if ((attr.getNodeType() != Node.ELEMENT_NODE) && !attr.getNodeName().equals("Attribute")) { // need error handling continue; } String attrName = ((Element) attr).getAttribute("name"); set.add(attrName); } return set; } public static Set getChildNodes(Node parentNode, String childName) { Set retVal = new HashSet(); NodeList children = parentNode.getChildNodes(); for (int i = 0; i < children.getLength(); i++) { Node node = children.item(i); if (node.getNodeName().equalsIgnoreCase(childName)) { retVal.add(node); } } return (retVal); } }