使用sax和java从xml文件中删除多个节点

使用sax和java从xml文件中删除多个节点,第1张

使用sax和java从xml文件中删除多个节点

尝试

    XMLReader xr = new XMLFilterImpl(XMLReaderFactory.createXMLReader()) {        private boolean skip;        @Override        public void startElement(String uri, String localName, String qName, Attributes atts)     throws SAXException { if (qName.equals("rule")) {     if (atts.getValue("id").equals("1")) {         skip = true;     } else {         super.startElement(uri, localName, qName, atts);         skip = false;     } } else {     if (!skip) {         super.startElement(uri, localName, qName, atts);     } }        }        public void endElement(String uri, String localName, String qName) throws SAXException { if (!skip) {     super.endElement(uri, localName, qName); }        }        @Override        public void characters(char[] ch, int start, int length) throws SAXException { if (!skip) {     super.characters(ch, start, length); }        }    };    Source src = new SAXSource(xr, new InputSource("test.xml"));    Result res = new StreamResult(System.out);    TransformerFactory.newInstance().newTransformer().transform(src, res);

输出

<?xml version="1.0" encoding="UTF-8"?><ruleset>    <rule id="2">        <condition> <case2>somefunctionality</case2> <allow>false</allow>        </condition>    </rule></ruleset>


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5501289.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-12
下一篇2022-12-12

发表评论

登录后才能评论

评论列表(0条)

    保存