我需要轉換一個org.w3c.dom.Document
到org.jdom.Document
如何org.w3c.dom.Document中轉換爲org.jdom.Document中
我曾嘗試按照下..
InputStream inputStream = new ByteArrayInputStream(str.getBytes());
Tidy tidy = new Tidy();
tidy.setMakeClean(false);
tidy.setShowWarnings(true); //tidy.setShowWarnings(false);
tidy.setTidyMark(false);
tidy.setNumEntities(true);
tidy.setQuoteAmpersand(true);
tidy.setQuoteMarks(true);
tidy.setQuoteNbsp(false);
tidy.setHideEndTags(false);
tidy.setDropEmptyParas(false);
Document tidyDOM =tidy.parseDOM(inputStream, null);
DOMBuilder domBuilder = new DOMBuilder();
org.jdom.Document jdomDoc = domBuilder.build(tidyDOM);
domBuilder.build(tidyDOM)
拋出以下例外:
org.jdom.IllegalNameException: The name "html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"" is not legal for JDOM/XML DocTypes: XML names cannot contain the character " ".
at org.jdom.DocType.setElementName(DocType.java:171)
at org.jdom.DocType.<init>(DocType.java:111)
at org.jdom.DocType.<init>(DocType.java:144)
at org.jdom.DefaultJDOMFactory.docType(DefaultJDOMFactory.java:118)
at org.jdom.input.DOMBuilder.buildTree(DOMBuilder.java:332)
at org.jdom.input.DOMBuilder.buildTree(DOMBuilder.java:170)
at org.jdom.input.DOMBuilder.build(DOMBuilder.java:135)
at test.JaxenTest.testParsingVisitor(JaxenTest.java:58)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
公平地說,這不是一個JDOM問題。我認爲你會發現DOM文檔'餵養'JDOM是不準確的......你不能有一個叫做「html PUBLIC」的元素 - // W3C // DTD HTML 4.01 Transitional // EN「」 – rolfl 2012-05-03 02:32:39