📄 saxecho.java
字号:
package xmlp;import org.xml.sax.helpers.*;import org.xml.sax.Attributes;import static java.lang.System.out;import java.util.HashMap;import org.xml.sax.SAXException;import javax.xml.parsers.ParserConfigurationException;import java.io.IOException;import javax.xml.parsers.SAXParserFactory;import javax.xml.parsers.SAXParser;public class SAXEcho extends DefaultHandler { StringBuffer sb=new StringBuffer(); HashMap pre=new HashMap(); @Override public void startDocument(){ out.print("<?xml version=\"1.0\" ?>"); } @Override public void endElement(String uri,String localName,String qName){ String en=localName; if(en.equals("")) en = qName; out.print("</"+en+">"); } @Override public void startElement(String uri,String localName,String qName,Attributes atts){ String en=localName; if(en.equals("")) en=qName; out.print("<" +en); if(sb.length()>0) { out.println(sb.toString()); sb=new StringBuffer(); } if(atts !=null) { int len=atts.getLength(); for(int i=0;i<len;i++){ String an=atts.getLocalName(i); if(an.equals("")) an=atts.getQName(i); String u=atts.getURI(i); String prefix=(String)pre.get(u); if(prefix !=null) an=prefix+":" +an; out.print(" "+an+"=\""+atts.getValue(i)+"\""); } out.print(">"); } } @Override public void characters(char[] ch,int start,int length){ out.print(new String(ch,start,length)); } public void startPrefixMapping(String prefix,String uri){ pre.put(uri,prefix); String ns=" xmlns"; if(!"".equals(prefix)) ns=ns+":"+prefix; ns=ns+"=\"" +uri+ "\""; sb.append(ns); } public static void main(String[] args){ try{ SAXParserFactory spf=SAXParserFactory.newInstance(); spf.setValidating(true); SAXParser parser=spf.newSAXParser(); DefaultHandler handler=new SAXEcho(); parser.parse(args[0],handler); }catch(SAXException ex){ ex.printStackTrace(); }catch(ParserConfigurationException ex){ ex.printStackTrace(); }catch(IOException ex){ ex.printStackTrace(); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -