xml – 忽略Scala中的DTD规范
发布时间:2020-12-16 08:00:32 所属栏目:百科 来源:网络整理
导读:我想偶尔忽略dtd规范,同时使用Scala解析一个xml文件。我知道这可以很方便地通过java界面完成 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();dbf.setValidating(false);dbf.setFeature("http://xml.org/sax/features/namespaces",fals
我想偶尔忽略dtd规范,同时使用Scala解析一个xml文件。我知道这可以很方便地通过java界面完成
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,这是真的你的问题,但用恶意的方式写道。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |