1

我想将 javascript 存储在 xml 中,并在适当的时候将其放入文档中。但似乎 xml 解析器删除了特殊字符 (<,>,",') 之间的所有文本。我能做些什么让它停止这样做。进入并转义它们是不切实际的。代码在这里:

$.ajax({
type: "GET",
    url: "/mwebphoto/xml/albums.xml",
    dataType: "xml",
    success: function(xml) {
        $(xml).find('album').each(function(){
            var xmlAlbum= $(this)
            var xmlTitle = $(this).find('title').text();
            var xmlEmbedCode = $(this).find('embedCode').text();

谢谢

4

1 回答 1

0

您的代码在语法上是错误的:xmlAlbum声明后缺少分号并且您没有关闭迭代器(您是否只是错过了将其复制到您的问题中?)。

要在 xml 中存储特殊字符,您必须正确表示它们:

  • <->&#x3c;
  • >->&#x3e;
  • &->&#x26;
  • '->&#x27;
  • "->&#x22;

但是请注意,引号可以逐字使用 - 只需确保它们不会干扰属性值的分隔引号。

另一种选择是将有问题的文本部分包装到 cdata 部分中(<![CDATA[...]]>。这种方法使您免于使用上述编码。

您可能希望遵循另一种方法:将您的 js 代码嵌入到script分配了不同于text/javascript. 这些块将被 dom 采用并且可以访问,例如。通过合适的 jquery 选择器。

警告:我没有用纯 js 尝试过这种方法,尽管 mime 类型,用户代理可能过于智能地执行代码。

于 2013-08-06T00:54:27.557 回答