8

为什么我总是只获得有效 XML 文本节点的前 4096 个字符?(使用 JavaScript ...)文本节点是否有限?

4

2 回答 2

13

是的。一些浏览器限制为 4096,并将较长的文本拆分为父元素的多个文本节点子节点。如果您查看 Apache CXF 的源代码,您会发现一些实用的 Java 脚本来处理这个问题,如果没有其他地方的话。

// Firefox splits large text regions into multiple Text objects (4096 chars in
// each). Glue it back together.
function getNodeText(node) {
    var r = "";
    for (var x = 0;x < node.childNodes.length; x++) {
        r = r + node.childNodes[x].nodeValue;
    }
    return r;
}

另见:

https://github.com/apache/cxf/blob/cxf-2.1.9/rt/javascript/src/main/resources/org/apache/cxf/javascript/cxf-utils.js

在这个社区有更多的好东西。

于 2009-12-28T02:33:14.620 回答
2

顺便说一句,您可以使用normalize方法将所有连续的 TextNode 合并为一个,而不是循环它们来获取文本。

于 2011-03-06T20:53:32.380 回答