質問

ようにしている書SAXパーサのためのXHTML文書をダウンロードしたいから。またお困りのdoctype宣言いたから こちらの そのため、W3Cて意図的に遮へのアクセスDTD)、固定すると:

XMLReader reader = parser.getXMLReader();
reader.setFeature("http://apache.org/xml/features/disallow-doctype-decl",true);

しかし、今では私の体験の第二の問題です。のSAXパーサが例外をスローしであることから一部にJavascriptを埋め込XHTML文書

    <script type="text/javascript" language="JavaScript">
function checkForm() {
answer = true;
if (siw && siw.selectingSomething)
    answer = false;
    return answer;
}//
</script>

具体的には、パーサ投エラーを一度に達すると、&&'sとしての期待が実体参照での例外:

`org.xml.sax.SAXParseException: The entity name must immediately follow the '&' in the entity reference.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:391)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1390)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEntityReference(XMLDocumentFragmentScannerImpl.java:1814)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3000)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:624)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:486)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:810)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:740)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:110)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1208)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:525)
at MLIAParser.readPage(MLIAParser.java:55)
at MLIAParser.main(MLIAParser.java:75)`

疑いものかばんを無効にDTDにしかこのエラーになります。では、どうすれば今の私のDTDエラーを回避するために実体参照。

声で

Pete

役に立ちましたか?

解決

あなたが解析しようとしている

(X)HTMLは、(そうしないと、エラーを解析SAXを取得されない)有効なXMLではありません。そして、二重アンパサンド(「&&は」)のことを確認しました。それは自分自身で、あなたは文書を解析するために、プレーンXMLパーサーを使用使用できないことを意味します。

するよう TagSoup のように使用できるツールは、ありますが、 (あなたは以前と同じSAX / XML解析コードを使用することができます)適切なSAXイベントを生成しますが、TagSoupが適切なSAX / XMLイベントに乏しい形成され、HTMLのイベントをマッピングするの世話をします。

他のヒント

私は、たとえば、あなたは、CDATAセクション内のスクリプトの内容を置くことになっていると思う HTTP ://www.w3schools.com/TAGS/tag_script.asp には、次の例を示します:

<script type="text/javascript"><![CDATA[
document.write("Hello World!")
//]]></script>

NekoHTML しょうこれは直ーのご使用を推奨させていただく、こちらをクリックして下さいとして使用して、XMLReader.

使用している場合は、SAXフィルターできるときもあります挿入 CDATAイベント 後の手続きのためのstartElement <script>, although that might be parser-dependent as not all parsers support the LexicalHandler特徴.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top