package com;
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
class DOMValidator {
public static void main(String[] args) {
try {
String fileName = "conf/invalid_dtd2.xml";
File x = new File(fileName);
DocumentBuilderFactory f = DocumentBuilderFactory.newInstance();
f.setValidating(true); // Default is false
DocumentBuilder b = f.newDocumentBuilder();
// ErrorHandler h = new DefaultHandler();
ErrorHandler h = new MyErrorHandler();
b.setErrorHandler(h);
Document d = b.parse(x);
} catch (ParserConfigurationException e) {
System.out.println(e.toString());
} catch (SAXException e) {
System.out.println(e.toString());
} catch (IOException e) {
System.out.println(e.toString());
}
}
private static class MyErrorHandler implements ErrorHandler {
public void warning(SAXParseException e) throws SAXException {
System.out.println("Warning: ");
printInfo(e);
}
public void error(SAXParseException e) throws SAXException {
System.out.println("Error: ");
printInfo(e);
}
public void fatalError(SAXParseException e) throws SAXException {
System.out.println("Fattal error: ");
printInfo(e);
}
private void printInfo(SAXParseException e) {
System.out.println(" Public ID: " + e.getPublicId());
System.out.println(" System ID: " + e.getSystemId());
System.out.println(" Line number: " + e.getLineNumber());
System.out.println(" Column number: " + e.getColumnNumber());
System.out.println(" Message: " + e.getMessage());
}
}
}
分享到:
相关推荐
总结来说,Java中的DOM解析器配合XML Schema Factory可以有效地验证XML文件的合法性,通过捕获解析异常和检查返回的`Document`对象来判断验证结果。同时,注意性能优化和安全防护,避免潜在的攻击风险。
本文将深入探讨如何使用DOM读取XML文件,并结合提供的标签“源码”和“工具”,提供实用的代码示例和相关知识。 首先,理解DOM的基本概念。DOM将XML文档看作一个由节点组成的树形结构,其中根节点代表整个文档,而...
在本文中,我们将深入探讨如何使用DOM(Document Object Model)API来读取和写入XML文件。 DOM是一种标准,它提供了一种结构化的表示XML文档的方式,并允许程序和脚本通过API访问XML文档的各个部分。DOM将XML文档...
通过DOMParser类,我们可以加载XML文件并将其转化为DOM树。解析过程包括验证XML文档的语法,确保其符合XML规范。 2. **创建DOM树**:DOM允许我们创建新的XML文档,通过Document对象可以添加元素、属性和文本节点。...
本文将详细介绍如何使用 JavaScript 来验证 XML 的格式是否正确。 #### 一、理解 XML 验证的需求 在进行 XML 数据处理时,验证 XML 文件的正确性是非常重要的一步。如果 XML 文件存在语法错误或者结构问题,将会...
- 解析XML文件: ```java Document doc = builder.parse("path_to_xml_file.xml"); ``` - 创建新的`Document`: ```java Document doc = builder.newDocument(); ``` 4. 在`Document`中创建元素、属性和其他节点: ...
4. 运行Java程序,观察控制台输出或生成的新XML文件,验证DOM解析和操作是否正确。 在“徐守威”的指导下,这个入门案例将帮助你理解DOM解析XML的基本概念,并通过实际操作提升技能。同时,了解并熟练运用DOM解析,...
总之,DOM4J结合XSD提供了一种高效且灵活的方式来验证XML文件的结构和内容。这对于保证数据交换的准确性和一致性具有重要意义,特别是在需要处理大量XML数据的系统中。理解和掌握这一技术,能够帮助开发者提高代码的...
在Java编程中,DOM4J是一个非常流行的XML处理库,它提供了一套强大的API来创建、解析和操作XML文档。...通过运行`Dom4jTest.java`,我们可以确保DOM4J的实现与预期一致,从而在实际项目中安全地使用DOM4J处理XML文件。
要使用这个工具,你只需要将你的XML文件路径作为参数传递给`TestXML`程序,它会通过解析和验证XML文件的语法来检查其有效性。如果XML文件有效,工具会返回成功信息;反之,它会报告错误位置和原因。这对于开发者调试...
本篇文章将深入探讨如何使用Java中的SAXParser和SAXParserFactory类来验证XML文件是否符合指定的XSD规范。 首先,`SAXParserFactory.newInstance()` 是Java API中用于创建SAXParser实例的方法,它是`javax.xml....
当DOM4J遇到一个带有DTD声明的XML文档时,它会尝试访问DTD文件并根据其内容验证XML文档的合法性。 #### 问题分析 在DOM4J解析过程中,如果XML文件包含了如下的DTD声明: ```xml <!DOCTYPE struts PUBLIC "-//...
2. **解析XML文件**:使用XML解析器,如Python的`ElementTree`库,Java的`JDOM`或`DOM4J`,或者JavaScript的`DOMParser`,来读取和解析XML文件。解析器能够将XML文档转化为可操作的对象结构。 3. **构建CSV数据模型...
在本篇中,我们将详细介绍如何在VC++中使用XML Schema来验证XML文件。 首先,理解XML Schema的概念是关键。XML Schema是一种W3C标准,用于定义XML文档的结构和数据类型。它通过一系列规则(如元素、属性、数据类型...
总的来说,这个实例详细地展示了如何在JSP中使用DOM解析XML文件,包括读取XML数据进行登录验证,以及将新数据写入XML文件。这种方法适用于需要频繁读取和更新XML数据的场景,但需要注意性能问题,因为DOM解析整个XML...
Java 解析 XML 文件的 DOM 和 SAX 方式是指在 Java 中使用 Document Object Model(DOM)和 Simple API for XML(SAX)两种方式来解析 XML 文件的技术。下面将详细介绍这两种方式的原理、实现和优缺点。 DOM 方式 ...
在Java环境中,处理XML文件通常涉及到DOM(Document Object Model)解析器。"dom.jar"是一个包含Java DOM API实现的库,它是Java标准版(Java SE)的一部分,用于解析XML文档并将其转换为内存中的树形结构。 DOM...
6. **XML Schema支持**:DOM4J可以验证XML文档是否符合指定的XML Schema定义,帮助开发者确保数据的准确性和一致性。 7. **便捷的API**:DOM4J的API设计简洁易用,使得开发人员能够快速上手,同时提供高级特性,如...
使用C#或VB.NET,可以使用`System.Xml.XmlDocument`类来加载XML文件,然后通过节点遍历和操作来读写数据。 4. **LINQ to XML**: - .NET Framework 提供了LINQ to XML,这是一种更现代、更简洁的API来处理XML。...
例如,你可以使用DOM4J来读取XML文件,通过Jaxen执行XPath查询来提取特定信息,然后使用DOM4J提供的方法更新XML文档内容。同时,Xerces可以确保XML文档遵循预定义的结构规则。 在实际开发中,将这些jar包添加到项目...