使用 Scala 未定义 SAXParseException 命名空间 xml
Posted
技术标签:
【中文标题】使用 Scala 未定义 SAXParseException 命名空间 xml【英文标题】:SAXParseException Namespace xml undefined using Scala 【发布时间】:2011-12-23 04:33:57 【问题描述】:我有一个 SVG 文档,并且 SVG 样式元素具有属性 xml:space="preserve"。
尝试使用 Scala 解析此文档时,堆栈跟踪会引发异常 线程“主”org.xml.sax.SAXParseException 中的异常:命名空间 xml 未定义 在 com.dautelle.xml.sax.RealtimeParser.parseError(未知来源) 在 com.dautelle.xml.sax.RealtimeParser.processAttribute(未知来源) 在 com.dautelle.xml.sax.RealtimeParser.parseContent(未知来源) 在 com.dautelle.xml.sax.RealtimeParser.parse(未知来源) 在 com.dautelle.xml.sax.XMLReaderImpl.parse(未知来源) 在 javax.xml.parsers.SAXParser.parse(SAXParser.java:395) 在 scala.xml.factory.XMLLoader$class.loadXML(XMLLoader.scala:40) 在 scala.xml.XML$.loadXML(XML.scala:40) 在 scalaapplication11.Main$.main(Main.scala:144) 在 scalaapplication11.Main.main(Main.scala) Java 结果:1
这是 SVG 元素的顶部
这是样式元素
/* text */
.titletext text-anchor:middle;stroke-width:0.3;font-family:sansserif;font-size:12;stroke:black;fill:black;
.provtext text-anchor:middle;stroke-width:0.3;font-family:sansserif;font-size:12;stroke:black;fill:black;
.labeltext stroke-width:0.1;stroke:black;fill:black;
.unordered fill:red; stroke:black; stroke-width:1;fill-opacity:0.90;
.labeltext
并且我能够使用 Java 的 DocumentBuilderFactory 将 xmlns:jdipNS 属性附加到文档的根目录。但是 xmlns:xml 没有被附加(可能是因为它是标准命名空间)。我不知道如何让 Scala 处理 xml 命名空间。
【问题讨论】:
【参考方案1】:从表面上看,这看起来像是 dautelle(Javolution?)XML 解析器中的一个严重错误。我不太了解 Scala 环境,但似乎已使用标准 Java DocumentBuilderFactory 分配了解析器,因此您应该能够通过更改类路径来切换到不同的 XML 解析器。
【讨论】:
谢谢。我加载了 Apache 的 Xerces 实现,它解决了这个问题。以上是关于使用 Scala 未定义 SAXParseException 命名空间 xml的主要内容,如果未能解决你的问题,请参考以下文章
“未找到编译器镜像中的 scala.runtime”,但在使用 -Xbootclasspath/p:scala-library.jar 启动时工作