Czy istnieje sposób, aby umieścić zmienną zostać rozszerzona w sekcji CDATA w ScalaZmienny w CDATA w Scala
val reason = <reason><![CDATA[ {failedReason} ]]></reason>
Czy istnieje sposób, aby umieścić zmienną zostać rozszerzona w sekcji CDATA w ScalaZmienny w CDATA w Scala
val reason = <reason><![CDATA[ {failedReason} ]]></reason>
Nie jestem pewien, czy można dostać się, że dzięki natywnej obsłudze XML, ale można zrobić coś takiego:
scala.xml.XML.loadString("<reason><![CDATA[%s]]></reason>".format(failedReason))
stracić niektóre walidacji kompilacji w ten sposób, ale powinno dać Ci am xml z elementem danych, które szukasz. Ponieważ zwraca wartość scala.xml.Elem
, możesz również osadzić wynik w większej strukturze XML.
EDIT
Po myśleć o tym nieco więcej, co następuje może być beter (i mniej kruche) sposób to zrobić. Ogranicza część tekstu wolnego tylko do CDATA, minimalizując potencjał wyrażeń niezbalansowanych.
<reason>{ scala.xml.Unparsed("<![CDATA[%s]]>".format(failedReason)) }</reason>
To może być jeszcze prostsze:
val reason = <reason>{scala.xml.PCData(failedReason)}</reason>
Możesz chcieć uciec przed nielegalnymi ']]>': 'content.replaceAll ("]]> ","]]]]> ")' –
Drugi nieanalizowanych blok działa świetnie! – maxfridbe