O Haxe não lê corretamente o XML CDATA.
Considerando o seguinte XML:
<root>
<tag>
<![CDATA[foo]]>
</tag>
</root>
E o snippet Haxe abaixo:
// `data` contains the above XML.
// Parses `data`.
var xml = haxe.xml.Fast(Xml.parse(data).firstElement());
Não conseguimos ler o valor CDATA de tag
:
// Reads the inner data of `tag`
var content = xml.node.tag.innerData;
// > Exception is thrown!
// > 'tag does not only have data'
Uma correção simples é cortar os espaços antes e depois do elemento CDATA e, em seguida, analisar a string XML:
// Normalize CDATA
data = ~/>s+<!/gs.replace(data, "><!");
data = ~/]>s+</gs.replace(data, "]><");