我怎么总是只获得有效XML文本节点的前4096个字符? (使用JavaScript ...)是一个文本节点有限吗?
答案 0 :(得分: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;
}
另见:
在这附近有更多好吃的东西。
答案 1 :(得分:2)
顺便说一下,您可以使用normalize方法将所有连续的TextNode连接成一个,而不是循环它们以获取文本。