如何将 CDATA 部分添加到 Actionscript 3 中的 XMLDocument 对象?

发布于 2024-09-08 04:45:46 字数 381 浏览 8 评论 0原文

我记得以前做过,所以我想我在这里遗漏了一些东西。 XMLNode 的 nodeType 属性仅支持 ELEMENT_NODE 和 TEXT_NODE,如果我尝试将 CDATA 部分作为字符串添加到 XMLNode,它就会被转义。

var node:XMLNode = new XMLNode(3, "<![CDATA[some text and <tags> here]]>");

我得到的是具有以下值的 TEXT_NODE:

&lt ;![CDATA[一些文本和 &lt ;标签>这里]]>

这甚至不是 TEXT_NODE 的有效值

I remember doing it before, so I guess I'm missing something here.
XMLNode's nodeType property only support ELEMENT_NODE and TEXT_NODE, and if I try to add the CDATA section to the XMLNode as a string it get escaped.

var node:XMLNode = new XMLNode(3, "<![CDATA[some text and <tags> here]]>");

What I get is a TEXT_NODE with the following value:

< ;![CDATA[some text and <
;tags> ; here]]> ;

which isn't even a valid value for a TEXT_NODE

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

沉鱼一梦 2024-09-15 04:45:54

它不会解析,你可能需要一个后退的方法。

试用一:将节点内容添加为字符串,

var sometext:String = 'some text and <tags> here';

将空白 XMLNode 添加到文档中,然后使用 xml.replace

xml.replace('blanknode','<blanknode><![CDATA[' + sometext + ']]></blanknode>');

试用二:从将 XML 返回类型函数放入 XMLNode

Update

var sometext:String = 'some text and <b>bold</b> here';
        var nodeblank:XMLNode = new XMLNode(1,insert(sometext));
        trace(nodeblank);


        var txt:TextField = new TextField();
        txt.htmlText = nodeblank.nodeName;
        addChild(txt);

这显示在 TextField ->这里有一些文字和粗体

public function insert(s:String):XML {
            var x:XML = new XML("<![CDATA[" + s + "]]>");
            return x;
    }

It will not parse, you may need a backway of doing it.

Trial one : add your node content as a string

var sometext:String = 'some text and <tags> here';

add a blank XMLNode to your document and then use xml.replace

xml.replace('blanknode','<blanknode><![CDATA[' + sometext + ']]></blanknode>');

Trial two: return it from a XML return type function into the XMLNode

Update

var sometext:String = 'some text and <b>bold</b> here';
        var nodeblank:XMLNode = new XMLNode(1,insert(sometext));
        trace(nodeblank);


        var txt:TextField = new TextField();
        txt.htmlText = nodeblank.nodeName;
        addChild(txt);

This shows in the TextField -> some text and bold here

public function insert(s:String):XML {
            var x:XML = new XML("<![CDATA[" + s + "]]>");
            return x;
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文