gpt4 book ai didi

XML 文件中没有包含 DTD 声明的 XML 文件的 Java DTD 验证?

转载 作者:可可西里 更新时间:2023-11-01 16:57:44 36 4
gpt4 key购买 nike

如何使用外部 DTD 文件来验证我的 XML 文件?

DTD 将位于某些 url 上,例如http://localhost/example.dtd

并且 DTD 未在 XML 文件中引用,因此我需要在我的 Java servlet 中执行此操作。

我正在使用 JDOM 处理我当前的 XML 文件。

感谢任何帮助或指点

最佳答案

如果XML文件中没有指定DTD,可以使用Transformer添加进去,然后解析如下:

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 声明的 XML 文件的 Java DTD 验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4749062/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com