Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala Sax解析器无法处理<;!DOCTYPE XML>;_Xml_Scala_Parsing - Fatal编程技术网

Scala Sax解析器无法处理<;!DOCTYPE XML>;

Scala Sax解析器无法处理<;!DOCTYPE XML>;,xml,scala,parsing,Xml,Scala,Parsing,我想解析我从我无法控制的来源(特别是Suunto sporttesters)获得的XML文件。当使用scalaXML.load()加载它们时,它们可以很好地加载,但是为了获得更好的性能,我更喜欢SAX(pull)解析。然而,拉式解析器似乎对文件头不满意。请参见以下示例: import scala.io.Source import scala.xml.pull.XMLEventReader val text = """<?xml version="1.0" encoding="ISO-885

我想解析我从我无法控制的来源(特别是Suunto sporttesters)获得的XML文件。当使用scala
XML.load()
加载它们时,它们可以很好地加载,但是为了获得更好的性能,我更喜欢SAX(pull)解析。然而,拉式解析器似乎对文件头不满意。请参见以下示例:

import scala.io.Source
import scala.xml.pull.XMLEventReader
val text = """<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE xml>
<MovesCount MoveslinkVersion="1.2.41.0" TimeZone="60" >
 <Device sn="Quest_2596420792" >
  <Model info="DEVICE;INT;R" >120</Model>
  <Name info="DEVICE;TEXT;R" >Quest</Name>
  <FullName info="DEVICE;TEXT;R" >Suunto Quest</FullName>
  <SerialNumber info="DEVICE;INT;R" >2596420792</SerialNumber>
  </Device>
</MovesCount>"""

val src = Source.fromString(text)

for (ev <- new XMLEventReader(src)) {
  println(ev)
}
导入scala.io.Source
导入scala.xml.pull.XMLEventReader
val text=”“”
120
探索
Suunto探索
2596420792
"""
val src=Source.fromString(文本)

对于(ev在尝试另一个解析器()之后,我认为文档的格式确实有点不太正常,需要在将其输入到解析器之前进行修复。我的解决方法是,当文档类型标题出现时,使用
PushbackInputStream
转换输入流。

在尝试另一个解析器()之后我认为文档的格式实在是太不正常了,在将其输入到解析器之前需要对其进行修复。我的解决方法是使用
PushbackInputStream
转换输入流时跳过文档类型标题