lvi*_*ani 3 java xml-namespaces saxparser
考虑以下输入 xml 文档:
<oracle:EMP xmlns:oracle="http://www.oracle.com/xml"/>
Run Code Online (Sandbox Code Playgroud)
...以及以下处理程序:
final class XMLizatorSaxHandler extends DefaultHandler {
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
System.out.println(uri + "," + localName + "," + qName);
}
}
Run Code Online (Sandbox Code Playgroud)
当将它与 a 一起使用时,SAXParser我预计会出现以下输出:
uri: http://www.oracle.com/xml
localName: EMP
qName: oracle:EMP
Run Code Online (Sandbox Code Playgroud)
但我得到的是这个:
uri:
localName:
qName: oracle:EMP
Run Code Online (Sandbox Code Playgroud)
为什么?我怎样才能得到正确的信息?
好的,感谢史蒂夫的提示我找到了解决方案。
需要SaxParserFactory.setNamespaceAware(true);提前打电话SaxParserFactory.newSAXParser();
这是完整的代码:
SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
saxParserFactory.setNamespaceAware(true); // here is the trick
SAXParser parser = saxParserFactory.newSAXParser();
MyHandler handler = new MyHandler();
parser.parse(in, handler);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2144 次 |
| 最近记录: |