XML文件中不包含DTD声明的XML文件的Java DTD验证?
如何使用外部DTD文件验证XML文件 DTD将位于某个url上,例如 并且DTD在XML文件中没有引用,所以我需要在我的Javaservlet中这样做 我目前正在使用JDOM处理XML文件XML文件中不包含DTD声明的XML文件的Java DTD验证?,java,xml,http,dtd,Java,Xml,Http,Dtd,如何使用外部DTD文件验证XML文件 DTD将位于某个url上,例如 并且DTD在XML文件中没有引用,所以我需要在我的Javaservlet中这样做 我目前正在使用JDOM处理XML文件 感谢您提供任何帮助或指点此问题已由处理此问题已由处理如果XML文件中未指定DTD,您可以使用转换器将其添加,然后按如下所示对其进行解析: DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder
感谢您提供任何帮助或指点此问题已由处理此问题已由处理如果XML文件中未指定DTD,您可以使用转换器将其添加,然后按如下所示对其进行解析:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder db = factory.newDocumentBuilder();
//parse file into DOM
Document doc = db.parse(new File("file.xml"));
DOMSource source = new DOMSource(doc);
//now use a transformer to add the DTD element
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, "/path/to/file.dtd");
StringWriter writer = new StringWriter();
StreamResult result = new StreamResult(writer);
transformer.transform(source, result);
//finally parse the result.
//this will throw an exception if the doc is invalid
db.parse(new InputSource(new StringReader(writer.toString())));
如果XML文件中未指定DTD,则可以使用转换器将其添加到中,然后按如下所示对其进行解析:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder db = factory.newDocumentBuilder();
//parse file into DOM
Document doc = db.parse(new File("file.xml"));
DOMSource source = new DOMSource(doc);
//now use a transformer to add the DTD element
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, "/path/to/file.dtd");
StringWriter writer = new StringWriter();
StreamResult result = new StreamResult(writer);
transformer.transform(source, result);
//finally parse the result.
//this will throw an exception if the doc is invalid
db.parse(new InputSource(new StringReader(writer.toString())));
有没有可能用JDOM来做这件事?对于同样的问题有什么帮助,但是在Android中使用SAX解析吗?@dogbane你能帮助我如何使用你给出的代码吗?拜托,真的很紧急。。。我的xml文件也有同样的问题…@dogbane我的意思是,如何运行这段代码。。。我是java新手。。。处理xml和DTD的问题。。。请帮忙。。。提前感谢:)有没有可能用JDOM做到这一点?对于同样的问题,除了在Android中使用SAX解析之外,还有什么帮助吗?@dogbane您能帮我了解一下如何使用您给出的代码吗?拜托,真的很紧急。。。我的xml文件也有同样的问题…@dogbane我的意思是,如何运行这段代码。。。我是java新手。。。处理xml和DTD的问题。。。请帮忙。。。提前感谢:)