jQuery parseHTML和parseXML行为

时间:2014-03-14 15:01:53

标签: javascript jquery xml

在我的previous question中,我一直在寻找$.parseXML在BPMN文件中遇到script标记时抛出异常的原因。我虽然这是jQuery的一个问题,但也在他们的问题跟踪器上发布了这个问题并得到了一个尝试$.parseHTML的建议。

不同之处在于$.parseHTML不会抛出任何异常,但它会在第一个script标记后静默忽略标记。这是我用于测试的有效XML:

<?xml version="1.0" encoding="UTF-8"?>
<someroot>
    <firsttag>
           <peacefultag></peacefultag>
    </firsttag>
    <secondtag>
        <a>asdsa</a>
    </secondtag>
</someroot>

以及以下简单选择器:

$(result1).find('firsttag').length; // 1
$(result1).find('secondtag').length; // 1

如果您将上述XML中的peacefultag替换为script,则会发生这种情况:

$(result1).find('secondtag').length; // becomes 0.

这是小提琴:http://jsfiddle.net/k7m6w/

我错过了什么,这是预期的行为吗?

1 个答案:

答案 0 :(得分:2)

只需将scriptBody2打印到控制台即可。您可以看到内部脚本标记的结束</script>标记用于使用第一个脚本标记进行数学运算。因此,忽略内部标记之后的所有内容。

这不是parseHTML的问题,因为parseHTML只获取要解析的部分标记。

http://jsfiddle.net/3gxEM/