`
helpbs
  • 浏览: 1161678 次
文章分类
社区版块
存档分类
最新评论

Java 使用SAX解析xml文件

 
阅读更多

下面的代码可以直接跑,希望能为初学使用SAX解析xml文件的朋友节省时间

Java代码
  1. packageparseXML;
  2. importorg.apache.xerces.parsers.SAXParser;
  3. importorg.xml.sax.Attributes;
  4. importorg.xml.sax.helpers.DefaultHandler;
  5. //第一种方法直接解析
  6. publicclassSAXDemoextendsDefaultHandler{
  7. publicstaticvoidmain(String[]args){
  8. try{
  9. SAXParserparser=
  10. (SAXParser)Class.forName("org.apache.xerces.parsers.SAXParser").newInstance();
  11. SAXDemohandler=newSAXDemo();
  12. parser.setContentHandler(handler);
  13. parser.parse("parseXML/test.xml");
  14. }catch(Exceptione){
  15. System.out.println(e.toString());
  16. }
  17. }
  18. publicvoidstartElement(Stringuri,StringlocalName,StringqName,Attributesattr){
  19. System.out.println("Element的开始uri:"+uri+"|localName:"+localName+"|qName:"+qName);
  20. if(attr.getLength()>0){
  21. for(inti=0;i<attr.getLength();i++){
  22. System.out.println(attr.getQName(i)+"="+attr.getValue(i));
  23. }
  24. }
  25. }
  26. publicvoidendElement(Stringuri,StringlocalName,StringqName){
  27. System.out.println("Element的结束uri:"+uri+"localName:"+localName+"qName:"+qName);
  28. System.out.println("=============================================================");
  29. }
  30. }





Java代码
  1. packageparseXML;
  2. importorg.apache.xerces.parsers.SAXParser;
  3. importorg.xml.sax.Attributes;
  4. importorg.xml.sax.SAXException;
  5. importorg.xml.sax.helpers.AttributesImpl;
  6. importorg.xml.sax.helpers.DefaultHandler;
  7. importorg.xml.sax.helpers.XMLFilterImpl;
  8. //第二种方法:使用filter解析
  9. publicclassSAXDemo2extendsDefaultHandler{
  10. publicstaticvoidmain(String[]args){
  11. try{
  12. //生成SAXParser
  13. SAXParserparser=
  14. (SAXParser)Class.forName("org.apache.xerces.parsers.SAXParser").newInstance();
  15. //生成Handler
  16. SAXDemo2handler=newSAXDemo2();
  17. FilterHandlerfilter=newFilterHandler();
  18. //将刚才生成的handler和parser配置进filter
  19. filter.setParent(parser);
  20. filter.setContentHandler(handler);
  21. filter.parse("parseXML/test.xml");
  22. }catch(Exceptione){
  23. System.out.println(e.toString());
  24. }
  25. }
  26. publicvoidstartElement(Stringuri,StringlocalName,StringqName,Attributesattr){
  27. System.out.println("Element的开始uri:"+uri+"|localName:"+localName+"|qName:"+qName);
  28. if(attr.getLength()>0){
  29. for(inti=0;i<attr.getLength();i++){
  30. System.out.println(attr.getQName(i)+"="+attr.getValue(i));
  31. }
  32. }
  33. }
  34. publicvoidendElement(Stringuri,StringlocalName,StringqName){
  35. System.out.println("Element的结束uri:"+uri+"localName:"+localName+"qName:"+qName);
  36. System.out.println("=============================================================");
  37. }
  38. staticclassFilterHandlerextendsXMLFilterImpl{
  39. intindex=0;
  40. publicvoidstartElement(Stringuri,StringlocalName,StringqName,Attributesattr)throwsSAXException{
  41. AttributesImplattrImpl=newAttributesImpl(attr);
  42. for(inti=0;i<attrImpl.getLength();i++){
  43. if(attrImpl.getQName(i).toUpperCase().equals("ID")){
  44. attrImpl.removeAttribute(i);
  45. break;
  46. }
  47. }
  48. attrImpl.addAttribute("","id","id","ID",String.valueOf(index++));
  49. super.startElement(uri,localName,qName,attrImpl);
  50. }
  51. publicvoidendElement(Stringuri,StringlocalName,StringqName)throwsSAXException{
  52. super.endElement(uri,localName,qName);
  53. }
  54. publicvoidcharacters(char[]ch,intiStart,intiLength)throwsSAXException{
  55. super.characters(ch,iStart,iLength);
  56. }
  57. }
  58. }
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics