venice-main-classic/src/com/silverwrist/util/DOMElementHelper.java
2001-01-31 20:55:37 +00:00

116 lines
2.8 KiB
Java

/*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* (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.mozilla.org/MPL/>.
*
* Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
* WARRANTY OF ANY KIND, either express or implied. See the License for the specific
* language governing rights and limitations under the License.
*
* The Original Code is the Venice Web Community System.
*
* The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
* for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
* Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
*
* Contributor(s):
*/
package com.silverwrist.util;
import org.w3c.dom.*;
public class DOMElementHelper
{
private Element elt; // element housed by this helper class
public DOMElementHelper(Element elt)
{
this.elt = elt;
} // end constructor
protected void finalize()
{
elt = null;
} // end finalize
private static String getTextOfElement(Element e)
{
NodeList kids = e.getChildNodes();
if (kids==null)
return null; // no text?
StringBuffer b = null;
for (int i=0; i<kids.getLength(); i++)
{ // look for an ELEMENT_NODE node matching the desired name
Node t = kids.item(i);
if ((t.getNodeType()==Node.TEXT_NODE) || (t.getNodeType()==Node.CDATA_SECTION_NODE))
{ // append to the string under construction
if (b==null)
b = new StringBuffer();
else
b.append(' ');
b.append(t.getNodeValue());
} // end if
} // end for
if (b==null)
return null; // no TEXT nodes
else
return b.toString(); // return the concatenation
} // end getTextOfElement
public Element getElement()
{
return elt;
} // end getElement
public Element getSubElement(String name)
{
NodeList kids = elt.getChildNodes();
if (kids==null)
return null; // no children?
for (int i=0; i<kids.getLength(); i++)
{ // look for an ELEMENT_NODE node matching the desired name
Node t = kids.item(i);
if ((t.getNodeType()==Node.ELEMENT_NODE) && (t.getNodeName().equals(name)))
return (Element)t;
} // end for
return null; // not found
} // end getSubElement
public String getElementText()
{
return getTextOfElement(elt);
} // end getElementText
public String getSubElementText(String name)
{
Element se = getSubElement(name);
if (se==null)
return null;
else
return getTextOfElement(se);
} // end getSubElementText
public boolean hasChildElement(String name)
{
Element tmp = getSubElement(name);
return (tmp==null) ? false : true;
} // end hasChildElement
} // end DOMElementHelper