summaryrefslogtreecommitdiff
path: root/source/com/c2kernel/utils/Dom4JElementParser.java
diff options
context:
space:
mode:
Diffstat (limited to 'source/com/c2kernel/utils/Dom4JElementParser.java')
-rwxr-xr-xsource/com/c2kernel/utils/Dom4JElementParser.java38
1 files changed, 38 insertions, 0 deletions
diff --git a/source/com/c2kernel/utils/Dom4JElementParser.java b/source/com/c2kernel/utils/Dom4JElementParser.java
new file mode 100755
index 0000000..a4d5bbe
--- /dev/null
+++ b/source/com/c2kernel/utils/Dom4JElementParser.java
@@ -0,0 +1,38 @@
+package com.c2kernel.utils;
+
+import java.io.StringReader;
+import java.util.Iterator;
+import java.util.List;
+
+import org.dom4j.Attribute;
+import org.dom4j.Document;
+import org.dom4j.Element;
+import org.dom4j.io.SAXReader;
+
+public class Dom4JElementParser
+{
+ public static String[] parse(String data, String xpath)
+ {
+ try
+ {
+ SAXReader reader = new SAXReader();
+
+ Document d = reader.read(new StringReader(data));
+ List list = d.selectNodes( xpath );
+ String[] returnArray = new String[list.size()];
+ int i=0;
+ for ( Iterator iter = list.iterator(); iter.hasNext();i++ )
+ {
+ Object object = iter.next();
+ if (object instanceof Element) returnArray[i]=((Element)object).getText();
+ else if (object instanceof Attribute) returnArray[i]=((Attribute)object).getText();
+ }
+ return returnArray;
+ }
+ catch (Exception e)
+ {
+ Logger.error(e);
+ return new String[0];
+ }
+ }
+}