DOM based parsers are mostly useful ... when you are already parsing a DOM. An example of this would be parsing an Style object out of an Web Map Server GetMap request.
Parsing a Filter
You can use the DOM parser to parse individual filter nodes.
InputSource input = new InputSource( reader ); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document dom = db.parse( input ); Filter filter = null; // first grab a filter node NodeList nodes = dom.getElementsByTagName("Filter"); for (int j = 0; j < nodes.getLength(); j++) { Element filterNode = (Element) nodes.item(j); NodeList list = filterNode.getChildNodes(); Node child = null; for (int i = 0; i < list.getLength(); i++) { child = list.item(i); if ((child == null) || (child.getNodeType() != Node.ELEMENT_NODE)) { continue; } filter = FilterDOMParser.parseFilter(child); } } System.out.println( "got:"+filter );
Parsing a Style Layer Descriptor
You can use an SLD parser to directly parse out the data structure:
SLDParser stylereader = new SLDParser(sf, surl);
StyledLayerDescriptor sld = stylereader.parseSLD();
Or you can extract the defined Style objects:
SLDParser stylereader = new SLDParser(sf, surl);
Style styles[] = stylereader.readXML();