diff options
author | Curtis D'Entremont | 2006-10-23 23:18:59 +0000 |
---|---|---|
committer | Curtis D'Entremont | 2006-10-23 23:18:59 +0000 |
commit | afc1c2203e2b118c686b257dc851f4969216918f (patch) | |
tree | 1dea2b6d1b3144c12745ea96ef32c97b858e6f90 | |
parent | 4ea1fcd13003b11c4be100f9a0506c9da1d54553 (diff) | |
download | eclipse.platform.ua-afc1c2203e2b118c686b257dc851f4969216918f.tar.gz eclipse.platform.ua-afc1c2203e2b118c686b257dc851f4969216918f.tar.xz eclipse.platform.ua-afc1c2203e2b118c686b257dc851f4969216918f.zip |
160969 [Help] Exception occurred while adding document xxx.xhtml to index.
-rw-r--r-- | org.eclipse.help.base/src/org/eclipse/help/internal/xhtml/DynamicXHTMLProcessor.java | 4 | ||||
-rw-r--r-- | org.eclipse.help.base/src/org/eclipse/help/internal/xhtml/XHTMLCharsetHandler.java | 31 |
2 files changed, 34 insertions, 1 deletions
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/xhtml/DynamicXHTMLProcessor.java b/org.eclipse.help.base/src/org/eclipse/help/internal/xhtml/DynamicXHTMLProcessor.java index 2fb68d733..bf1db1d57 100644 --- a/org.eclipse.help.base/src/org/eclipse/help/internal/xhtml/DynamicXHTMLProcessor.java +++ b/org.eclipse.help.base/src/org/eclipse/help/internal/xhtml/DynamicXHTMLProcessor.java @@ -47,6 +47,7 @@ public class DynamicXHTMLProcessor { xmlProcessor = new XMLProcessor(new DOMProcessorHandler[] { new IncludeHandler(locale), new ExtensionHandler(locale), + new XHTMLCharsetHandler(), new FilterHandler() }); } @@ -55,7 +56,8 @@ public class DynamicXHTMLProcessor { if (xmlProcessorNoFilter == null) { xmlProcessorNoFilter = new XMLProcessor(new DOMProcessorHandler[] { new IncludeHandler(locale), - new ExtensionHandler(locale) + new ExtensionHandler(locale), + new XHTMLCharsetHandler() }); } return xmlProcessorNoFilter.process(buf, href); diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/xhtml/XHTMLCharsetHandler.java b/org.eclipse.help.base/src/org/eclipse/help/internal/xhtml/XHTMLCharsetHandler.java new file mode 100644 index 000000000..fb636b1b0 --- /dev/null +++ b/org.eclipse.help.base/src/org/eclipse/help/internal/xhtml/XHTMLCharsetHandler.java @@ -0,0 +1,31 @@ +package org.eclipse.help.internal.xhtml; + +import org.eclipse.help.internal.dynamic.DOMProcessorHandler; +import org.w3c.dom.Element; + +/* + * Converts the charset in XHTML meta tag to UTF-8. This is the encoding + * output by the XMLProcessor, and we need the charset in the meta tags + * to match, otherwise browsers will be confused. + */ +public class XHTMLCharsetHandler extends DOMProcessorHandler { + + private static final String ELEMENT_META = "meta"; //$NON-NLS-1$ + private static final String ATTRIBUTE_CONTENT = "content"; //$NON-NLS-1$ + private static final String PREFIX_CHARSET = "text/html; charset="; //$NON-NLS-1$ + private static final String ENCODING_UTF8 = "UTF-8"; //$NON-NLS-1$ + + /* (non-Javadoc) + * @see org.eclipse.help.internal.dynamic.DOMProcessorHandler#handle(org.w3c.dom.Element, java.lang.String) + */ + public short handle(Element elem, String id) { + if (ELEMENT_META.equals(elem.getNodeName())) { + String content = elem.getAttribute(ATTRIBUTE_CONTENT); + if (content.startsWith(PREFIX_CHARSET)) { + elem.setAttribute(ATTRIBUTE_CONTENT, PREFIX_CHARSET + ENCODING_UTF8); + return HANDLED_CONTINUE; + } + } + return UNHANDLED; + } +} |