Find Element Or Create And Set Attribute : DOM Attribute « XML « Java Tutorial






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 findElementElseCreateAndSetAndAttribute(
      Document document, Element parent, String element, String value,
      String attributeName, String attributeValue) {

    Element e = findElementElseCreateAndAttribute(document, parent,
        element, attributeName, attributeValue);
    if (e != null)
      e.appendChild(document.createTextNode(value));

    return e;
  }
  public static Element findElementElseCreateAndAttribute(Document document,
      Element parent, String element, String attributeName,
      String attributeValue) {
    NodeList nl = parent.getElementsByTagName(element);
    Element e = null;

    if (nl.getLength() == 0) {
      parent.appendChild(document.createElement(element));
      e = (Element) parent.getElementsByTagName(element).item(0);
      e.setAttribute(attributeName, attributeValue);
    }

    return e;
  }

}








33.5.DOM Attribute
33.5.1.Set Attribute
33.5.2.Get Attribute
33.5.3.Get an Attribute from an Element. Returns an empty String if none found
33.5.4.Has Attribute
33.5.5.Output XML element Attributes
33.5.6.Find Element Or Create And Attribute
33.5.7.Find Element Or Create And Set Attribute
33.5.8.Returns the value of the attribute of the given element
33.5.9.Set an Attribute in an Element
33.5.10.Return a list of named Elements with a specific attribute value.
33.5.11.Encode Xml Attribute
33.5.12.Copy the attribues on one element to the other
33.5.13.An encoder for converting text to be used within XML attribute values
33.5.14.remove Attribute
33.5.15.return the right attribute node
33.5.16.return the value of the attribute of the given element with the given name
33.5.17.get all the attributes for an Element