📄 mysaxpa.ja
字号:
import org.xml.sax.Attributes;
import org.xml.sax.Locator;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import org.xml.sax.helpers.DefaultHandler;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
public class MySAXParser{
public void parseXML(String uri) {
try{
System.out.println("正在分析中的XML文件: " + uri + "\n");
SAXParserFactory factory =
SAXParserFactory.newInstance();
factory.setValidating(true);
SAXParser parser = factory.newSAXParser();
//分析文件
parser.parse(uri,
(DefaultHandler)new MyDefaultHandler());
} catch(SAXException saxe){
System.out.println("XML分析错误: "+saxe.getMessage());
} catch(Exception e){ }
}
public static void main(String[] args) {
//如果参数数目不对,则印出使用说明,并结束程序
if( args.length != 1 ){
System.out.println("请输入欲分析的文件名: " +
"java MySAXParser [XML URI]");
System.exit(-1);
}
String uri = args[0];
MySAXParser myParser = new MySAXParser();
myParser.parseXML(uri);
}
}
class MyDefaultHandler extends DefaultHandler {
/**保留Locator对象的信息*/
private Locator locator;
public void setDocumentLocator (Locator locator){
System.out.println("设置Locator对象..");
//把SAX的Locator对象放到到我们自己的Locator对象里
this.locator = locator;
}
public void startDocument ()
throws SAXException{
System.out.println("文件分析开始->");
}
public void endDocument()
throws SAXException{
System.out.println("<-文件分析结束");
}
public void startElement (String namespaceURI, String localName,
String qName, Attributes atts)
throws SAXException{
//打印元素名称
System.out.print("元素开始: " + localName);
if(namespaceURI.equals("")) {
namespaceURI = "没有命名空间";
}
System.out.println( ", 命名空间: " + namespaceURI +
", 新名称: " + qName + ".");
//打印属性
for(int i=0; i<atts.getLength(); i++)
System.out.println(
"\t属性名称: " +
atts.getLocalName(i) +
" = " + atts.getValue(i) + ".");
}
public void endElement (String namespaceURI, String localName,
String qName)
throws SAXException{
System.out.print("元素结束: " + localName);
if(namespaceURI.equals("")) {
namespaceURI = "没有命名空间";
}
System.out.println( ", 命名空间: " + namespaceURI +
", 新名称: " + qName + ".");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -