我有一个SVG文档,SVG样式元素的属性为xml:space =“preserve”。
尝试使用Scala解析此文档时,会引发堆栈跟踪异常 线程“main”中的异常org.xml.sax.SAXParseException:Namespace xml undefined at com.dautelle.xml.sax.RealtimeParser.parseError(Unknown Source) at com.dautelle.xml.sax.RealtimeParser.processAttribute(Unknown Source) at com.dautelle.xml.sax.RealtimeParser.parseContent(Unknown Source) 在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元素的顶部 < svg xmlns =“http://www.w3.org/2000/svg”xmlns:jdipNS =“http://jdip.sourceforge.org/jdipNS”xmlns:xlink =“http://www.w3。 org / 1999 / xlink“color-rendering =”optimizeQuality“contentScriptType =”text / ecmascript“contentStyleType =”text / css“height =”680px“preserveAspectRatio =”xMinYMin“version =”1.0“viewBox =”0 0 1835 1360“ width =“918px”zoomAndPan =“magnify”>
这是样式元素 < style type =“text / css”xml:space =“preserve”><![CDATA [
/* 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命名空间。
答案 0 :(得分:2)
从表面上看,这看起来像是dautelle(Javolution?)XML解析器中的一个严重错误。我不太了解Scala环境,但似乎解析器已使用标准Java DocumentBuilderFactory进行分配,因此您应该只需更改类路径就可以切换到不同的XML解析器。