Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.IOException;
- import java.util.Iterator;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- import javax.xml.parsers.DocumentBuilder;
- import javax.xml.parsers.DocumentBuilderFactory;
- import javax.xml.parsers.ParserConfigurationException;
- import org.apache.tools.ant.filters.StringInputStream;
- import org.w3c.dom.Document;
- import org.w3c.dom.Element;
- import org.w3c.dom.NodeList;
- import org.xml.sax.SAXException;
- public class XMLParserUtil {
- public static String findFirstTagContent(String response, String tag) {
- return getFirstElement(response,tag).getTextContent();
- }
- public static Element getFirstElement(String response,String tag) {
- NodeList nl = buildDocument(response).getElementsByTagName(tag);
- if(nl.getLength() >0 ){
- return (Element) nl.item(0);
- }
- return null;
- }
- public static Element getLastElement(Document dom,String tag){
- NodeList nl = dom.getElementsByTagName(tag);
- int size = nl.getLength();
- if (size == 0) {
- return null;
- }
- return (Element) nl.item(size - 1);
- }
- public static Iterator<Element> getElements(String xml,String tag){
- return getElements(buildDocument(xml),tag);
- }
- public static Iterator<Element> getElements(Document dom,String tag){
- final NodeList nl = dom.getElementsByTagName(tag);
- return new Iterator<Element>(){
- private int index = 0;
- public boolean hasNext() {
- return index < nl.getLength();
- }
- public Element next() {
- Element el = (Element) nl.item(index);
- index++;
- return el;
- }
- public void remove() {
- throw new UnsupportedOperationException("unsupported");
- }
- };
- }
- public static Element getFirstElement(Element parent,String tag) {
- NodeList nl = parent.getElementsByTagName(tag);
- if(nl.getLength() >0 ){
- return (Element) nl.item(0);
- }
- return null;
- }
- public static Document buildDocument(String response) {
- // get the factory
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- try {
- // Using factory get an instance of document builder
- DocumentBuilder db = dbf.newDocumentBuilder();
- // parse using builder to get DOM representation of the XML file
- Document dom = db.parse(new StringInputStream(response));
- return dom;
- } catch (ParserConfigurationException pce) {
- throw new IllegalArgumentException("Invalid xml input[" + response
- + "]", pce);
- } catch (SAXException se) {
- throw new IllegalArgumentException("Invalid xml input[" + response
- + "]", se);
- } catch (IOException ioe) {
- throw new IllegalArgumentException("Invalid xml input[" + response
- + "]", ioe);
- }
- }
- }
Add Comment
Please, Sign In to add comment