Using Java to remove all xml attributes from a XML file that match a attribute-name?

gulfursormurl

New Member
I am trying to use Java to remove all xml attributes from a XML file that match a attribute-name. I am stuck at this point. At the bottom of this code I am able to get the attribute value of each node as I loop through but I can't figure out how to delete the attribute from the Node altogether . Any ideas?\[code\]import java.io.IOException;import java.io.StringWriter;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import javax.xml.transform.OutputKeys;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerConfigurationException;import javax.xml.transform.TransformerException;import javax.xml.transform.TransformerFactory;import javax.xml.transform.TransformerFactoryConfigurationError;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;import org.w3c.dom.*;import org.xml.sax.SAXException;public class StripAttribute { public static void main(String[] args) { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setNamespaceAware(true); org.w3c.dom.Document doc = null; NodeList nodes = null; try { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); doc = db.parse("a.xml"); nodes = doc.getChildNodes(); } catch (IOException e) { e.printStackTrace(); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } for ( int i = 0; i < nodes.getLength(); i++ ) { String id = nodes.item(i).getNodeValue(); if ( id.equals("siteKey")) { Element el = ((Attr) nodes.item(i)).getOwnerElement(); el.removeAttribute(id); } } Transformer transformer; StreamResult result = null; try { transformer = TransformerFactory.newInstance().newTransformer(); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); result = new StreamResult(new StringWriter()); DOMSource source = new DOMSource(doc); transformer.transform(source, result); } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (TransformerFactoryConfigurationError e) { e.printStackTrace(); } catch (TransformerException e) { e.printStackTrace(); } String xmlString = result.getWriter().toString(); System.out.println(xmlString); } } \[/code\]Here is a sample of the XML I want to transform:https://gist.github.com/2784907
 
Back
Top