Приветствую Вас !!!!
Значит так читаю тотуриалы по XML парсерам:
http://www.ibm.com/developerworks/ru/edu/x-java2/section4.html
по sax парсерам прилогается следующий код
| Код | /* * (C) Copyright IBM Corp. 2004. All rights reserved. * * US Government Users Restricted Rights Use, duplication or * disclosure restricted by GSA ADP Schedule Contract with IBM Corp. * * The program is provided "as is" without any warranty express or * implied, including the warranty of non-infringement and the implied * warranties of merchantibility and fitness for a particular purpose. * IBM will not be liable for any damages suffered by you as a result * of using the Program. In no event will IBM be liable for any * special, indirect or consequential damages or lost profits even if * IBM has been advised of the possibility of their occurrence. IBM * will not be liable for any third party claims against you. */
import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.SAXParseException; import org.xml.sax.helpers.DefaultHandler;
/** * This code creates a namespace-aware SAX parser, then * echoes any namespace-qualified elements and attributes * to the console. */
public class SaxNS extends DefaultHandler { public void parseURI(String uri) { try { SAXParserFactory spf = SAXParserFactory.newInstance(); spf.setNamespaceAware(true); SAXParser sp = spf.newSAXParser(); sp.parse(uri, this); } catch (Exception e) { System.err.println(e); } } /** Start element. */ public void startElement(String namespaceURI, String localName, String qName, Attributes attrs) { if (namespaceURI.length() > 0) { System.out.println("\nElement " + qName); System.out.println("\tLocal name = " + localName); if (qName.indexOf(':') > 0) System.out.println("\tNamespace prefix = " + qName.substring(0, qName.indexOf(':'))); else System.out.println("\tNamespace prefix ="); System.out.println("\tNamespace URI = " + namespaceURI); }
if (attrs != null) { int len = attrs.getLength(); for (int i = 0; i < len; i++) if (attrs.getURI(i).length() > 0) { System.out.println("\nAttribute " + attrs.getQName(i) + "=" + attrs.getValue(i)); System.out.println("\tLocal name = " + attrs.getLocalName(i)); if (qName.indexOf(':') > 0) System.out.println("\tNamespace prefix = " + attrs.getQName(i). substring(0, attrs.getQName(i). indexOf(':'))); else System.out.println("\tNamespace prefix = "); System.out.println("\tNamespace URI = " + attrs.getURI(i)); } } }
// // ErrorHandler methods //
/** Warning. */ public void warning(SAXParseException ex) { System.err.println("[Warning] "+ getLocationString(ex)+": "+ ex.getMessage()); }
/** Error. */ public void error(SAXParseException ex) { System.err.println("[Error] "+ getLocationString(ex)+": "+ ex.getMessage()); }
/** Fatal error. */ public void fatalError(SAXParseException ex) throws SAXException { System.err.println("[Fatal Error] "+ getLocationString(ex)+": "+ ex.getMessage()); throw ex; }
/** Returns a string of the location. */ private String getLocationString(SAXParseException ex) { StringBuffer str = new StringBuffer();
String systemId = ex.getSystemId(); if (systemId != null) { int index = systemId.lastIndexOf('/'); if (index != -1) systemId = systemId.substring(index + 1); str.append(systemId); } str.append(':'); str.append(ex.getLineNumber()); str.append(':'); str.append(ex.getColumnNumber());
return str.toString(); } // getLocationString(SAXParseException):String
/** Main program entry point. */ public static void main(String argv[]) { if (argv.length == 0 || (argv.length == 1 && argv[0].equals("-help"))) { System.out.println("\nUsage: java SaxNS uri"); System.out.println(" where uri is the URI of your XML document."); System.out.println(" Sample: java SaxNS " + "sonnetnamespaces.xml"); System.out.println("\nEchoes namespace-qualified elements and " + "attributes to the console."); System.exit(1); }
SaxNS sns = new SaxNS(); sns.parseURI(argv[0]); } // main(String[]) }
|
Подгружающий из консоли файлик sonnet.xml.......
| Код | <?xml version="1.0"?> <sonnet pt:type="Shakespearean" xmlns:pt="http://www.literarysociety.org/poemtypes" > <auth:author xmlns:auth="http://www.literarysociety.org/authors"> <auth:lastName>Shakespeare</auth:lastName> <auth:firstName>William</auth:firstName> <auth:nationality>British</auth:nationality> <auth:yearOfBirth>1564</auth:yearOfBirth> <auth:yearOfDeath>1616</auth:yearOfDeath> </auth:author> <title>Sonnet 130</title> <lines> <line>My mistress' eyes are nothing like the sun,</line> <line>Coral is far more red than her lips red.</line> <line>If snow be white, why then her breasts are dun,</line> <line>If hairs be wires, black wires grow on her head.</line> <line>I have seen roses damasked, red and white,</line> <line>But no such roses see I in her cheeks.</line> <line>And in some perfumes is there more delight</line> <line>Than in the breath that from my mistress reeks.</line> <line>I love to hear her speak, yet well I know</line> <line>That music hath a far more pleasing sound.</line> <line>I grant I never saw a goddess go,</line> <line>My mistress when she walks, treads on the ground.</line> <line>And yet, by Heaven, I think my love as rare</line> <line>As any she belied with false compare.</line> </lines> </sonnet>
|
ВОПРОС : что и самое главное где нужно нависать чтобы результат отображался не только в консоли командной строки но и В среде разработки.... А то лазить каждый раз в командную сторку не очень удобно
Спасибо!!!! |