Jquery 不会从 XML 中逐字插入 CDATA 到 html 中

标签 jquery html xml parsing cdata

我一直在寻找类似的问题,以避免提出已经解决的问题,但我还没有找到对我来说有效的答案,抱歉,如果有的话,但我还没有看到。 我正在从 Jquery 读取 XML 文件,该 xml 文件包含一些我特意添加的 CDATA 内容,并且我希望保留这些内容以用于格式化目的:

<?xml version="1.0" encoding="UTF-8"?>
<categories>
    <description name="whatever">
        Blah, blah, blah<![CDATA[<br />]]>blah, blah, blah
    </description>
</categories>

读完后,我将其附加到 div 中:

$(xml).find('description[name="whatever"]').each(function()
{       
    $(container).append($(this));
});

我得到的是 Jquery 似乎忽略了“<”和“>”,所以我终于得到了:

Blah, blah, blah&l;tbr /&gt;blah, blah, blah

我已经尝试强制附加将内容视为如下文本:

$(container).text($(this));

但后来我得到:

[Object object]

如果我执行 .html() ,我会得到与 .append() 相同的结果...

最佳答案

普通的 XML 处理器无法知道它们处理的任何内容是否来自 CDATA 部分;据他们所知,任何 CDATA 内容都只是纯文本。因此,当 jQuery 处理 CDATA 内容时,它对待它的方式与出现在字符串文字中的内容没有任何不同(事实上,因为 jQuery 只是 DOM 上的一层) ,它绝对无法知道其输入是来自 CDATA 部分还是字符串文字,因为 DOM 不做任何此类区分) .

关于Jquery 不会从 XML 中逐字插入 CDATA 到 html 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15132403/

相关文章:

javascript - 如何使用传递给该模板的数据在 Handlebars 模板中的元素上注册事件

javascript - 如何居中引导行元素?

sql-server - 具有多个命名空间的 SQL Server Xml 查询

xml - 如何存储 XML 数据?

javascript - 如何检查从 DOM 中检索到的元素是否仍然存在于 DOM 中

jquery - 从集合中取出 n 个元素

javascript - Jquery 在提交之前将所有可见字段标记为必填

html - 需要开发一个网页在我的手机上运行

css - 如何在一行中显示数据表行?

php - 使用命名空间解析 XML 响应