我需要使用SAX解析器进行xml转换,因为我需要从xml中删除名称空间。由于我们正在处理巨大的XML,我需要使用SAX解析器。如何使用SAX解析器删除xml namesapce
样品输入的xml:
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"
xmlns:ns2="http://www.google.com/generation/type">
<ns2:meta>
<gender xmlns="" xmlns:ns5="http://www.google.com/generation">M</gender>
<dateOfBirth xmlns="" xmlns:ns5="http://www.google.com/generation">1976-07-19</dateOfBirth>
<ns2:languageRef>ENG</ns2:languageRef>
</ns2:meta>
<root>
用SAX解析器的帮助下,我需要的下方输出。
<root>
<meta>
<gender>M</gender>
<dateOfBirth>1976-07-19</dateOfBirth>
<languageRef>ENG</languageRef>
</ns2:meta>
<root>
预先感谢..
其中我试图代码,
我试图与XMLFlterImpl,
XMLReader xr = new XMLFilterImpl(XMLReaderFactory.createXMLReader()) {
@Override
public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException {
if (qName.contains(":")) {
String[] data = data = qName.split(":");
super.startElement(uri, localName, data[1], atts);
} else {
super.startElement(uri, localName, qName, atts);
}
}
这消除元素名称前缀(命名空间),但不确定如何删除命名空间属性
您需要使用SAX还是可以使用StAX? – nandsito
仅使用sax解析器 – pradeep
是否允许您使用StAX编写XML输出,因为SAX不写XML? – nandsito