gpt4 book ai didi

xml - 忽略 Scala 中的 DTD 规范

转载 作者:数据小太阳 更新时间:2023-10-29 01:39:32 26 4
gpt4 key购买 nike

我想在使用 Scala 解析 xml 文件时偶尔忽略 dtd 规范。我知道这可以很容易地通过 java 接口(interface)完成

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

dbf.setValidating(false);
dbf.setFeature("http://xml.org/sax/features/namespaces", false);
dbf.setFeature("http://xml.org/sax/features/validation", false);
dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false);
dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);

但是,我不确定如何使用 Scala 的 xml 库轻松地做到这一点。如果可能的话,我想继续使用 scala xml 库,因为它要好得多。

提前致谢!

最佳答案

这对我有用,但它取决于 XML 解析器的实现。

import scala.xml.Elem
import scala.xml.factory.XMLLoader
import javax.xml.parsers.SAXParser
object MyXML extends XMLLoader[Elem] {
override def parser: SAXParser = {
val f = javax.xml.parsers.SAXParserFactory.newInstance()
f.setNamespaceAware(false)
f.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
f.newSAXParser()
}
}

另见 this question ,这确实是您的问题,但措辞充满敌意。

关于xml - 忽略 Scala 中的 DTD 规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11315439/

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