Mega Code Archive

 
Categories / Java / XML
 

Find Container With Attribute Value Or Create And Set

import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; /*******************************************************************************  * Copyright (C) 2007 Google Inc.  *   * 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.  ******************************************************************************/ /**  * Various XML utilities.  *   * @author simonjsmith, ksim  * @version 1.1 - ksim - March 6th, 2007 - Added functions regarding streaming  * @version 1.2 - ksim - March 10th, 2007 - Added functions regarding DOM  *          manipulation  */ public class Utils {   public static Element findContainerWithAttributeValueElseCreateAndSet(       Document document, Element parent, String element, String value,       String attributeName, String attributeValue) {     Element e = findContainerWithAttributeValueElseCreate(document, parent,         element, attributeName, attributeValue);     e.appendChild(document.createTextNode(value));     return e;   }   public static Element findContainerWithAttributeValueElseCreate(       Document document, Element parent, String element,       String attributeName, String attributeValue) {     NodeList nl = parent.getElementsByTagName(element);     Element e;     for (int i = 0; i < nl.getLength(); i++) {       e = (Element) nl.item(i);       if (e.getAttribute(attributeName).equals(attributeValue)) {         return e;       }     }     e = document.createElement(element);     parent.appendChild(e);     e.setAttribute(attributeName, attributeValue);     return e;   } }