如果你不介意改變value
類型xml.Elem
,你可以做
def value = <xml:group>Hello <BR/> World</xml:group>
加成
在我看來,你應儘可能多地輸入內聯XML。只有這樣您才能對輸入進行編譯時驗證。所有其他解決方案要麼在某個時候給你一個運行時異常(比如說,你忘記了一些/
),甚至可能會破壞你的XML佈局。
但是,如果你真的想有一個簡單的變換,你可以這樣做:
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"
,然後(出於某種原因,它仍然顯示了<xml:group>
一部分,你可以得到與xml.NodeSeq.fromSeq(value.assumeXML.child)
擺脫它或類似)
def message = <HTML><HEAD><TITLE>Test</TITLE></HEAD><BODY>{value.assumeXML}</BODY></HTML>
甚至(當然,你不需要在這裏隱含的,Unparsed(value)
會做)
def message = <HTML><HEAD><TITLE>Test</TITLE></HEAD><BODY>{value.toUnparsedXML}</BODY></HTML>
如果您提供無效的XML,則assumeXML
方法將在運行時失敗; toUnparsedXML
將接受所有輸入,甚至是有潛在危險的數據。
感謝您的回答!我希望有一個更簡單的方法。然而,最後,將它保留爲'xml.Elem'更有意義,儘管它涉及到一些代碼更改。 – Jus12 2010-08-06 08:21:27