使用2.9.0.1
<b time={None}>Hello</b>
=&GT;
<b >Hello</b>
即。起始标签中的b后面有一个空格。 从XML的角度来看,这没有任何意义。
这个“功能”应该发生吗?
感谢。
答案 0 :(得分:3)
这是因为scala.xml.Elem的toString实现更具体 在对象scala.xml.MetaInf方法buildString中,如下所示:
def buildString(sb: StringBuilder): StringBuilder = {
sb.append(' ')
toString1(sb)
next.buildString(sb)
}
所以它首先在元素的字符串表示中添加了一个空格,并且只有在它附加了下一个属性之后,所以如果一个属性作为类成员存在但没有任何字符串表示,你最终会得到一个额外的空格在关闭括号之前
答案 1 :(得分:1)
实际上,这是允许的。见Extensible Markup Language (XML) 1.0 (Fifth Edition), 3.1 Start-Tags, End-Tags, and Empty-Element Tags。从那里:
STag ::= '<' Name (S Attribute)* S? '>'
其中S是空格,Attribute是属性定义。最终元素也是如此:
ETag ::= '</' Name S? '>'
所以这是允许的。是否是你想要的是另一回事: - )