Scala代碼:如何從字符串加載NodeSeq?
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?
Scala代碼:如何從字符串加載NodeSeq?
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?
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>)
爲了補充Vorsprung的回答,實際原因爲什麼XML.loadString
輸入<a>11</a><b>22</b>
失敗正是異常告訴你(重點煤礦):
以下根元素必須在文檔中的標記是 良構。
一個的well-formed XML文檔的要求是它包含恰好一個根元素。
因此,例如這工作得很好,並給你一個NodeSeq
(一Elem
更精確地說):
XML.loadString("<c><a>11</a><b>22</b></c>")
如果我添加一個根節點,它會工作,但我必須手動刪除根。 – Freewind 2013-05-11 10:49:32
我已經添加了一個方法來刪除「根」,只是有兩個片段作爲列表元素。希望這有助於 – Vorsprung 2013-05-11 13:10:29
謝謝,這可能是唯一的解決方案 – Freewind 2013-05-11 15:11:15