Scala代码:
val str = "<a>11</a><b>22</b>"
XML.loadString(str)
它会报告例外(当然):
org.xml.sax.SAXParseException:
The markup in the document following the root element must be well-formed.
是否可以从字符串加载NodeSeq?
答案 0 :(得分:5)
scala中的解析器不喜欢您的示例字符串
val str2="<xml><a>11</a><b>22</b></xml>"
工作正常,我猜你的例子不算作完整的文件
要使元素“在...内部”<xml>..</xml>
执行此操作
val n = xml.XML.loadString(str2)
val list = n.child
返回List
scala> n.child
res12: Seq[scala.xml.Node] = List(<a>11</a>, <b>22</b>)
答案 1 :(得分:1)
为了补充Vorsprung的回答,实际原因为什么XML.loadString
在输入<a>11</a><b>22</b>
上失败的原因正是异常告诉你的(强调我的):< / p>
根元素后面的文档中的标记必须是 合式强>
well-formed XML文档的要求之一是它包含正好一个根元素。
因此,例如,此工作正常,并为您提供NodeSeq
(更准确地说Elem
):
XML.loadString("<c><a>11</a><b>22</b></c>")