Forcing Scala's XML library to render “singlet

2019-08-11 07:44发布

问题:

If I use the loadString method to load HTML containing a <br/> tag, Scala's XML lib wants to convert that to the longer, and seemingly less standard <br></br> (which unfortunately even seems to render differently than the plain-old <br/> in some browsers).

I.e., the following...

val xml = scala.xml.XML.loadString("<body>Hi<br/>there.</body>")
xml.toString()

...yields...

<body>Hi<br></br>there.</body>

Is there a way to force Scala's XML lib to render the tag as a "singleton"?

回答1:

Not so!

scala> val xml = scala.xml.XML.loadString("<body>Hi<br/>there.</body>")
xml: scala.xml.Elem = <body>Hi<br/>there.</body>

scala> xml.toString()
res0: String = <body>Hi<br/>there.</body>

Of course, you are not using Scala 2.10.0, so you see what you are seeing.