Scala:在文件中查找DTD声明

Nic*_*las 9 xml dtd scala

我不熟悉scala XML库.有没有一种简单的方法来查找文档的DTD?从我到目前为止看到的,scala.xml.XML.load只返回Elem(文档的XML内容),但不是它的DTD.有没有其他方法专门做到这一点?

额外的问题:文档开头的XML声明的相同问题.

sbl*_*ndy 5

要获取完整文档,您需要使用ConstructingParser,如下所示:

val cpa = scala.xml.parsing.ConstructingParser.fromSource(src, false)
val doc = cpa.document()
val dtd = doc.dtd
Run Code Online (Sandbox Code Playgroud)

dtd是一个DTD应该提供您正在寻找的信息的实例.

至于XML声明,那是一个ProcInstr.您将需要查看procInstr解析器上的回调,了解如何获得该解析.