2

斯卡拉代码:

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?

4

2 回答 2

6

scala 中的解析器不喜欢您的示例字符串

val str2="<xml><a>11</a><b>22</b></xml>"

工作得很好,我猜你的例子不算完整的文档

要获得“内部”的元素,<xml>..</xml>请执行此操作

val n = xml.XML.loadString(str2)
val list = n.child

它返回一个列表

scala> n.child
res12: Seq[scala.xml.Node] = List(<a>11</a>, <b>22</b>)
于 2013-05-11T09:58:47.263 回答
1

为了补充 Vorsprung 的回答,输入失败的实际原因正是异常告诉您的(强调我的):XML.loadString<a>11</a><b>22</b>

根元素之后的文档中的标记必须是格式良好的

格式良好的XML 文档的要求之一是它只包含一个根元素

因此,例如,这可以正常工作并为您提供NodeSeqElem更准确地说是一个):

XML.loadString("<c><a>11</a><b>22</b></c>")
于 2016-01-04T23:40:25.917 回答