Scala XML文本生成,以获得收益
是否有任何方法可以使用文本语法生成XML,例如:Scala XML文本生成,以获得收益,xml,scala,Xml,Scala,是否有任何方法可以使用文本语法生成XML,例如: <a> { for (i <- Range(1, 3)) yield { <b>{i}</b> } } </a> { 对于(i您是否特别想使用用于理解的?如果不想,则应提供您想要的输出: <a>{ (Range(1, 3)).map{ vl => <b>{vl}</b> } }</a> { (范围(
<a>
{
for (i <- Range(1, 3)) yield {
<b>{i}</b>
}
}
</a>
{
对于(i您是否特别想使用用于理解的?如果不想,则应提供您想要的输出:
<a>{
(Range(1, 3)).map{ vl =>
<b>{vl}</b>
}
}</a>
{
(范围(1,3)).map{vl=>
{vl}
}
}
你发布的内容很好
如果您希望它在键入方面更加简洁,可以使用
(1 to 3).map{i => <b>{i}</b>}
//or
for(i<-1 to 3) yield <b>{i}</b>
(1到3).map{i=>{i}
//或
对于(i{i}}}
给
xml: scala.xml.Elem = <a><b>1</b><b>2</b><b>3</b></a>
xml:scala.xml.Elem=123
如果您想使用for语法,需要从Seq[Node]进行隐式转换给NodeSeq。我会写下代码,但我现在在手机上…my bad,理解返回一个元素向量,我假设它不会被接受。我不明白scala编译器如何自动将其转换为可以被接受的文本语法定义。据我所知,任何可以被我接受的东西都可以简单地转换成一个NodeSeq
可以进入{…}
(这只是我的假设;如果我错了,有人会纠正我)我还没有完全理解map或flatMap的本质,但我会研究它,这一个也非常优雅。
val xml = <a>{ (1 to 3).map{ i => <b>{i}</b> } }</a>
xml: scala.xml.Elem = <a><b>1</b><b>2</b><b>3</b></a>