1 package mir.util.xml.html;
\r
3 import java.io.IOException;
\r
4 import java.util.HashMap;
\r
5 import java.util.Iterator;
\r
6 import java.util.Map;
\r
8 import mir.util.xml.XMLParserEngine;
\r
9 import mir.util.xml.XMLParserExc;
\r
10 import mir.util.xml.XMLParserFailure;
\r
11 import mir.util.xml.XMLReaderTool;
\r
16 public class XMLHTMLParserProvider implements XMLParserEngine.XMLParserProvider {
\r
17 public XMLHTMLParserProvider() {
\r
20 public void parse(java.io.Reader aReader, final XMLParserEngine.XMLParserReceiver aReceiver) throws XMLParserExc, XMLParserFailure {
\r
21 HTMLParser parser = new HTMLParser();
\r
24 aReceiver.startDocument();
\r
26 parser.parse(aReader, new HTMLParser.ParserReceiver() {
\r
27 public void dtd(String aDTD) throws HTMLParserExc {
\r
29 aReceiver.extra(aDTD);
\r
31 catch (XMLParserExc t) {
\r
32 throw new HTMLParserFailure(t);
\r
36 public void openTag(String aTag, Map anAttributes) {
\r
37 Map attributes = new HashMap();
\r
38 Iterator i = anAttributes.entrySet().iterator();
\r
40 while (i.hasNext()) {
\r
41 Map.Entry entry = (Map.Entry) i.next();
\r
43 XMLReaderTool.getXMLNameForQualifiedName((String) entry.getKey()), entry.getValue());
\r
47 aReceiver.startElement(XMLReaderTool.getXMLNameForQualifiedName(aTag), attributes);
\r
49 catch (XMLParserExc e) {
\r
50 throw new HTMLParserFailure(e);
\r
54 public void closeTag(String aTag) {
\r
56 aReceiver.endElement(XMLReaderTool.getXMLNameForQualifiedName(aTag));
\r
58 catch (XMLParserExc e) {
\r
59 throw new HTMLParserFailure(e);
\r
63 public void comment(String aData) {
\r
65 aReceiver.extra(aData);
\r
67 catch (XMLParserExc e) {
\r
68 throw new HTMLParserFailure(e);
\r
72 public void cdata(String aData) {
\r
74 aReceiver.text(aData);
\r
76 catch (XMLParserExc e) {
\r
77 throw new HTMLParserFailure(e);
\r
82 aReceiver.endDocument();
\r
84 catch (IOException e) {
\r
85 throw new XMLParserFailure(e);
\r
87 catch (HTMLParserExc e) {
\r
88 throw new XMLParserFailure(e);
\r