gpt4 book ai didi

java - 从 sax validator 获取更多信息

转载 作者:行者123 更新时间:2023-12-01 16:10:26 28 4
gpt4 key购买 nike

我可以从 validator 中获取例如节点结构或类似的东西吗?像听众或处理程序之类的东西。异常(exception)是不够的。我必须选择发生错误的节点。这就是我到目前为止所构建的。

def factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI)
def schema = factory.newSchema(new StreamSource(new FileReader("src/import.xsd")))
def validator = schema.newValidator()
try {
validator.validate(new StreamSource(new FileReader("src/import.xml")))
println "everything is fine"
} catch(SAXException e) {
println e
}

谢谢。

最佳答案

解析时进行验证。这是 Java 代码,看起来翻译成 Groovy 应该非常简单:

InputStream xml = // …
InputStream xsd = // …

SchemaFactory xsFact = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = xsFact.newSchema(new StreamSource(xsd));

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
dbf.setValidating(false);
dbf.setSchema(schema);
DocumentBuilder db = dbf.newDocumentBuilder();

Document dom = db.parse(new InputSource(xml));

关于java - 从 sax validator 获取更多信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1459573/

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