Wenn es Ihnen nichts ausmacht, den Typ der value
a xml.Elem
können Sie tun
def value = <xml:group>Hello <BR/> World</xml:group>
Zusatz
Meiner Meinung nach sollten Sie so viel XML wie möglich inline eingeben. Nur dann haben Sie eine Kompilierzeitvalidierung der Eingaben. Alle anderen Lösungen führen entweder zu einer Laufzeit-Exception (z.B. weil man etwas vergessen hat) oder zu einem Fehler. /
) oder könnte sogar Ihr XML-Layout zerstören.
Wenn Sie jedoch wirklich eine einfache Umwandlung wünschen, können Sie dies tun:
class XmlString(str: String) {
def assumeXML = xml.XML.loadString("<xml:group>" + str + "</xml:group>")
def toUnparsedXML = new xml.Unparsed(str)
}
implicit def stringToXmlString(str: String) = new XmlString(str)
def value = "Hello <BR/> World"
und dann (aus irgendeinem Grund zeigt es immer noch die <xml:group>
Teil; Sie könnten ihn loswerden mit xml.NodeSeq.fromSeq(value.assumeXML.child)
oder ähnlich)
def message = <HTML><HEAD><TITLE>Test</TITLE></HEAD><BODY>{value.assumeXML}</BODY></HTML>
oder sogar (na ja, hier bräuchte man das implizit nicht, Unparsed(value)
reichen würde)
def message = <HTML><HEAD><TITLE>Test</TITLE></HEAD><BODY>{value.toUnparsedXML}</BODY></HTML>
Le site assumeXML
Methode wird zur Laufzeit fehlschlagen, wenn Sie ungültiges XML bereitstellen; toUnparsedXML
akzeptiert alle Eingaben, auch solche, die potenziell gefährlich sind.