Her zaman geçerli bir XML metin düğümünün yalnızca ilk 4096 karakterini almam nasıl olur? (JavaScript’i kullanarak ...) bir metin düğümü sınırlı mıdır?JavaScript XML metin düğümleri için 4096 karakter sınırı var mı?
8
A
cevap
13
Evet. Bazı tarayıcılar 4096 ile sınırlıdır ve daha uzun metinleri ana öğenin birden çok metin düğümü çocuğuna ayırır. Eğer kaynağa Apache CXF'ye bakarsanız, başka bir yer yoksa, bununla başa çıkmak için birtakım Java betiği bulacaksınız.
// 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;
}
Ayrıca bakınız:
bu mahallede daha güzellikler için.
2
Bu arada, metni elde etmek için tüm bitişik TextNode'ları bir araya getirmek yerine normalize yöntemini kullanabilirsiniz.
+0
Normalize yöntemi olduğunu hiç bilmiyordum. Çok teşekkürler! –
Burçlar listesi var mı? Bu kısıtlamayı başka bir kontrol için kontrol etmenin bir yolu var mı? –
Hayır. İstediğiniz zaman herhangi bir tarayıcı değişebilir. Umursamaz kod çalıştırmak için bize tek güvenli şey. – bmargulies
Oh iyi ... \ p IE (8) hepsini kabul ettiğini ne hakkında (uzunluk = 25858) ama Firefox ... ama IE W3School yeni loadXMLDoc xhttp = new ActiveXObject kabul etmez etmez ("Microsoft.XMLHTTP") , {xmlDoc = new ActiveXObject ("Microsoft.XMLDOM") ile çalıştı; } :( bir tarayıcı sorun olabilir tought asla ... daha spesifik bir şey (dosya adı?) Apache çözeltide aramaya var mı? ... –