116 lines
2.8 KiB
Java
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
|
|
|
|
|