perfsonar-dev - r1495 - trunk/perfsonar/src/org/perfsonar/commons/util
Subject: perfsonar development work
List archive
- From:
- To:
- Subject: r1495 - trunk/perfsonar/src/org/perfsonar/commons/util
- Date: Fri, 28 Jul 2006 05:52:35 -0400
Author: roman
Date: 2006-07-28 05:52:34 -0400 (Fri, 28 Jul 2006)
New Revision: 1495
Modified:
trunk/perfsonar/src/org/perfsonar/commons/util/XMLUtils.java
Log:
getElementFromXML method may find NMWG elements representing more than one
tag name.
Modified: trunk/perfsonar/src/org/perfsonar/commons/util/XMLUtils.java
===================================================================
--- trunk/perfsonar/src/org/perfsonar/commons/util/XMLUtils.java
2006-07-27 10:59:58 UTC (rev 1494)
+++ trunk/perfsonar/src/org/perfsonar/commons/util/XMLUtils.java
2006-07-28 09:52:34 UTC (rev 1495)
@@ -47,9 +47,13 @@
*
*/
public class XMLUtils {
-
+
+
+
// --------------------------------------------------------------
constants
-
+
+
+
/* feature ids */
public static final String NAMESPACES_FEATURE_ID =
"http://xml.org/sax/features/namespaces";
public static final String NAMESPACE_PREFIXES_FEATURE_ID =
"http://xml.org/sax/features/namespace-prefixes";
@@ -59,10 +63,12 @@
public static final boolean DEFAULT_NAMESPACES = true;
public static final boolean DEFAULT_NAMESPACE_PREFIXES = true;
-
+
+
// --------------------------------------------------------- public
methods
-
+
+
/**
* Converts XML entities \<\; and \>\; to characters "<" ">".
* @param input input string
@@ -246,22 +252,53 @@
return message;
}
-
-
-
-
-
-
-
-
-
-
-
+
+
/**
* Returns nmwg object with specific tag name parsed from xml string
*/
- public static Map<String, Element> getElementFromXML(String xmlPart,
String tagName, String parserFile) {
+ public static Map<String, Element> getElementFromXML(
+ String xmlPart, String tagName, String parserFile) {
+ ElemHandler handler = parseNmwgXML(xmlPart, parserFile);
+ String[] tagNames = {tagName};
+ Map<String, Element> elements = handler.getElement(tagNames);
+
+ return elements;
+ }
+
+
+ public static Map<String, Element> getElementFromXML(
+ String xmlPart, String[] tagNames, String parserFile) {
+
+ ElemHandler handler = parseNmwgXML(xmlPart, parserFile);
+ Map<String, Element> elements = handler.getElement(tagNames);
+
+ return elements;
+
+ }
+
+
+ /**
+ * Remove HTML/XML tags from string
+ */
+
+ public static String removeXMLTags(String xml) {
+
+ return xml.replaceAll("\\<[^\\>]+\\>","");
+
+ }
+
+
+
+ // --------------------------------------------------------- private
methods
+
+
+
+ private static ElemHandler parseNmwgXML(
+ String xmlPart, String parserFile) {
+
+
String DEFAULT_PARSER_NAME = "org.apache.xerces.parsers.SAXParser";
String NAMESPACES_FEATURE_ID =
"http://xml.org/sax/features/namespaces";
String NAMESPACE_PREFIXES_FEATURE_ID =
"http://xml.org/sax/features/namespace-prefixes";
@@ -312,26 +349,16 @@
}
- Map<String, Element> elements = handler.getElement(tagName);
+ return handler;
- return elements;
- }
-
-
- /**
- * Remove HTML/XML tags from string
- */
-
- public static String removeXMLTags(String xml) {
-
- return xml.replaceAll("\\<[^\\>]+\\>","");
-
}
-
-
+
+
+
// ---------------------------------------------------------- Inner class
-
+
+
/**
* Private class based on Handler class from ggf package.
* This adds a method to get any object representing xml tag
@@ -345,7 +372,7 @@
}
- public Map<String, Element> getElement(String name) {
+ public Map<String, Element> getElement(String[] names) {
Map<String, Element> map = new HashMap();
@@ -353,13 +380,19 @@
Element element = null;
boolean found = false;
- while(it.hasNext()) {
- element = (Element) it.next();
- String ln = element.getLocalName();
- if (ln.equals(name)) {
- found = true;
- map.put(element.getId(), element);
- }
+ for (int i = 0; i < names.length; i++) {
+
+ while(it.hasNext()) {
+
+ element = (Element) it.next();
+ String ln = element.getLocalName();
+ if (ln.equals(names[i])) {
+ found = true;
+ map.put(element.getId(), element);
+ }
+
+ }
+
}
if (!found) return null;
@@ -367,8 +400,9 @@
return map;
}
- }
+ } //ElemHandler
+
} //XMLUtils
- r1495 - trunk/perfsonar/src/org/perfsonar/commons/util, svnlog, 07/28/2006
- Re: [pS-dev] r1495 - trunk/perfsonar/src/org/perfsonar/commons/util, Jeff W. Boote, 07/28/2006
- Re: [pS-dev] r1495 - trunk/perfsonar/src/org/perfsonar/commons/util, Roman Lapacz, 07/28/2006
- Re: [pS-dev] r1495 - trunk/perfsonar/src/org/perfsonar/commons/util, Jeff W. Boote, 07/28/2006
Archive powered by MHonArc 2.6.16.