【问题标题】:How do I use JQuery's parseXML to parse from escaped string to an XML Object?如何使用 JQuery 的 parseXML 将转义字符串解析为 XML 对象?
【发布时间】:2023-03-28 02:50:02
【问题描述】:

我有一个非常大的 XML 文件,用 < > " 等转义。 我测试了 XML 并验证了它的格式是否正确。我怀疑取消转义 XML 保留字符存在一些问题。

例如:< 到 "

这是我正在做的一个例子:

xml_string = “<?xml version="1.0" encoding="UTF-8" standalone="yes"?><root><test></test></root&gt”;
xml_object = $.parseXML(unescape(xml_string));

我经常收到来自 parseXML 的“无效 XML”错误。

【问题讨论】:

    标签: javascript jquery xml parsing


    【解决方案1】:

    unescape() 函数在这种情况下不起作用。相反,您可以在下面的答案中使用 decode() 函数。这是旧的,但经过尝试和真实。基本上通过将值分配给幽灵元素,我们可以在那里“逃脱”它。

    var xml_string = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?><root><test></test></root&gt';
    
    
    function decode(input) {
      var txt = document.createElement("textarea");
      txt.innerHTML = input;
      return txt.value;
    }
    
    var decodedString = decode(xml_string);
    console.log('Decoded: ', decodedString);
    
    var xml_object = $.parseXML(decodedString);
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

    【讨论】:

    • 谢谢伙计。我在网上找到了这个解决方案,我想知道如果 xml_string 太大,它是否会导致内存不足的问题?我正在处理 80mb 的文件,而更大的文件从不加载。我试图找出代码中的问题所在,分析器显示解码函数运行了很长时间。就是那个或 parseXML 调用。
    • 我的意思是,如果您正在使用 80mb 的 xml 文件,您需要在后端探索如何处理。浏览器中的任何 80mb 都会导致问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-26
    • 2023-03-28
    • 2015-02-20
    • 2013-06-20
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    相关资源
    最近更新 更多