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
12 import mir.util.xml.XMLName;
\r
17 public class XMLHTMLParserProvider implements XMLParserEngine.XMLParserProvider {
\r
18 public XMLHTMLParserProvider() {
\r
21 public void parse(java.io.Reader aReader, final XMLParserEngine.XMLParserReceiver aReceiver) throws XMLParserExc, XMLParserFailure {
\r
22 HTMLParser parser = new HTMLParser();
\r
25 aReceiver.startDocument();
\r
27 parser.parse(aReader, new HTMLParser.ParserReceiver() {
\r
28 public void dtd(String aDTD) throws HTMLParserExc {
\r
30 aReceiver.extra(aDTD);
\r
32 catch (XMLParserExc t) {
\r
33 throw new HTMLParserFailure(t);
\r
37 public void openTag(String aTag, Map anAttributes) {
\r
38 Map attributes = new HashMap();
\r
39 Iterator i = anAttributes.entrySet().iterator();
\r
41 while (i.hasNext()) {
\r
42 Map.Entry entry = (Map.Entry) i.next();
\r
43 XMLName key = XMLReaderTool.getXMLNameForQualifiedName((String) entry.getKey());
\r
44 String value = (String) entry.getValue();
\r
46 value = key.getLocalName();
\r
48 attributes.put(key, value);
\r
52 aReceiver.startElement(XMLReaderTool.getXMLNameForQualifiedName(aTag), attributes);
\r
54 catch (XMLParserExc e) {
\r
55 throw new HTMLParserFailure(e);
\r
59 public void closeTag(String aTag) {
\r
61 aReceiver.endElement(XMLReaderTool.getXMLNameForQualifiedName(aTag));
\r
63 catch (XMLParserExc e) {
\r
64 throw new HTMLParserFailure(e);
\r
68 public void comment(String aData) {
\r
70 aReceiver.extra("<!--"+aData+"-->");
\r
72 catch (XMLParserExc e) {
\r
73 throw new HTMLParserFailure(e);
\r
77 public void cdata(String aData) {
\r
79 aReceiver.text(aData);
\r
81 catch (XMLParserExc e) {
\r
82 throw new HTMLParserFailure(e);
\r
87 aReceiver.endDocument();
\r
89 catch (IOException e) {
\r
90 throw new XMLParserFailure(e);
\r
92 catch (HTMLParserExc e) {
\r
93 throw new XMLParserFailure(e);
\r