- About Scala
- Documentation
- Code Examples
- Software
- Scala Developers
XML Parsing Question
Sat, 2010-03-13, 15:00
When I run the following code I get the attached error. If I remove the line
<?xml version="1.0" encoding="UTF-8" ?>
from the XML everything works fine. Any suggestions on what is wrong or how
to fix?
val someXMLInAString: String = """
<?xml version="1.0" encoding="UTF-8" ?>
010
0
0
2018-02-28T17:00:00
Structural Work
"""
//val someXML = XML.loadString(someXMLINAString)
val str = (XML.loadString(someXMLInAString) \\ "Name").text
println(str)
org.xml.sax.SAXParseException: The processing instruction target matching
"[xX][mM][lL]" is not allowed.
at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:174)
at
com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:388)
at
com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1414)
at
com.sun.org.apache.xerces.internal.impl.XMLScanner.scanPIData(XMLScanner.java:701)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanPIData(XMLDocumentFragmentScannerImpl.java:1020)
at
com.sun.org.apache.xerces.internal.impl.XMLScanner.scanPI(XMLScanner.java:669)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:954)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
at scala.xml.factory.XMLLoader$class.loadXML(XMLLoader.scala:46)
at scala.xml.XML$.loadXML(XML.scala:43)
at scala.xml.factory.XMLLoader$class.loadString(XMLLoader.scala:65)
at scala.xml.XML$.loadString(XML.scala:43)
at Main$$anon$1.((virtual file):46)
at Main$.main((virtual file):5)
at Main.main((virtual file))
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
scala.tools.nsc.util.ScalaClassLoader$$anonfun$run$1.apply(ScalaClassLoader.scala:55)
at
scala.tools.nsc.util.ScalaClassLoader$class.asContext(ScalaClassLoader.scala:22)
at
scala.tools.nsc.util.ScalaClassLoader$URLClassLoader.asContext(ScalaClassLoader.scala:61)
at
scala.tools.nsc.util.ScalaClassLoader$class.run(ScalaClassLoader.scala:55)
at
scala.tools.nsc.util.ScalaClassLoader$URLClassLoader.run(ScalaClassLoader.scala:61)
at
scala.tools.nsc.ScriptRunner$.scala$tools$nsc$ScriptRunner$$runCompiled(ScriptRunner.scala:326)
at
scala.tools.nsc.ScriptRunner$$anonfun$runScript$1.apply(ScriptRunner.scala:353)
at
scala.tools.nsc.ScriptRunner$$anonfun$runScript$1.apply(ScriptRunner.scala:353)
at
scala.tools.nsc.ScriptRunner$$anonfun$withCompiledScript$1.apply(ScriptRunner.scala:298)
at
scala.tools.nsc.ScriptRunner$$anonfun$withCompiledScript$1.apply(ScriptRunner.scala:298)
at scala.Option.map(Option.scala:74)
at scala.tools.nsc.ScriptRunner$.withCompiledScript(ScriptRunner.scala:298)
at scala.tools.nsc.ScriptRunner$.runScript(ScriptRunner.scala:353)
at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:161)
at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:110)
You cannot have whitespaces before the <?xml ...?> directive. It should work
if you you do:
val someXMLInAString: String = """<?xml version="1.0" encoding="UTF-8" ?>
..."""
where """ and < are stuck together.
--jl
sjcarroll6 wrote:
>
> When I run the following code I get the attached error. If I remove the
> line
> <?xml version="1.0" encoding="UTF-8" ?>
> from the XML everything works fine. Any suggestions on what is wrong or
> how to fix?
>
>
> val someXMLInAString: String = """
> <?xml version="1.0" encoding="UTF-8" ?>
> [...]
>