, 당신은 할 수
제 생각에는
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