исключить список scala. xml .Elem в один scala. xml .Elem - PullRequest
0 голосов
/ 28 мая 2020

скажем, у меня есть список scala. xml .Elem, например

val xmls = List(<div id = "tab1" class="tabcontent"> tab1_content_here </div>, 
     <div id = "tab2" class="tabcontent"> tab2_content_here </div>)

Мне нужно «исключить» этот список xml .Elem в один xml .Elem, например

scala.xml.Elem = <div id="tab1" class="tabcontent"> tab1_content_here </div>
                 <div id="tab2" class="tabcontent"> tab2_content_here </div>

Я пытаюсь создать набор различных tabcontents, похожих на то, что отображается на этой странице https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_tabs

Я попытался преобразовать список для строки и использования scala.xml.XML.loadString(xmls.mkString(""))

Я получаю org.xml.sax.SAXParserException: The markup in the document following the root element must be well-formed

Хорошо, это круто, так что это как-то связано с форматированием XML, я думаю? Я попытался сделать формат похожим на тот, что есть на странице примера, вызвав scala.xml.XML.loadString(xmls.mkString("\n\n"))

. Я получаю ту же ошибку, дальнейший поиск привел меня к этому сообщению org. xml .sax.SAXParseException разметка в документе, следующем за элементом root, должна быть правильно сформирована , поэтому похоже, что у меня не может быть

<div id="tab1"></div>
<div id="tab2"></div>

Но тогда почему пример w3 содержит именно это и удалось проанализировать что XML?

1 Ответ

1 голос
/ 28 мая 2020

Проблема в том, что документ XML может иметь только один элемент верхнего уровня, поэтому вы не можете «исключить из списка» действительный XML. Однако вы можете обернуть список во внешний элемент:

<wrapper>{xmls}</wrapper>

, что дает

<wrapper>
  <div id="tab1" class="tabcontent"> tab1_content_here </div>
  <div id="tab2" class="tabcontent"> tab2_content_here </div>
</wrapper>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...