Bazı özelliklerde <
ve >
olabilecek bir HTML belgesine sahibim. Bunu ayıklamak ve bir XSLT aracılığıyla çalıştırmak için çalışıyorum, ancak <
bir öznitelik içinde geçerli olmadığını söyleyen XSLT motor hataları. innerHTML unencodes < öznitelikleri
innerHTML
aracılığıyla DOM yüklenir, DOM
unencoding nitelikleri olduğunu. Garip bir şekilde, bu
<
ve
>
için yapar, ancak
&
gibi diğerleri değil. İşte
basit bir örnek:
var div = document.createElement('DIV');
div.innerHTML = '<div asdf="<50" fdsa="&50"></div>';
console.log(div.innerHTML)
DOM uygulaması HTML, XML öznitelikleri daha az sıkı olabilir niteliklerini olduğuna karar olduğunu farz ediyorum ve bu o "gibi çalıştığını "niyetindeydi. Sorum şu ki, korkunç bir regex değişimi yazmadan bu konuda çalışabilir miyim?
@Abel ben jQuery'nin '.html()' kullanıyorum, ben sadece "sorun" oluştuğu düşünüyorum nereye kadar azaltmaya çalışmıştır. Kaynak belge, .html() 'ile eklemeden önce bir tarayıcı XSLT üzerinden çalıştırdığım XML'dir. Daha sonra, XML'i geri almak için onu ters işlemden geçiriyorum. Ben sadece DOM'ın * unescaping * karakterini (ve başkalarını değil) tuhaf buluyorum. – murrayju
Kaynak XML'i değiştiremiyorum ve sonunda çıktıdaki aynı içeriği korumalıyım.Ortada hangi dönüşümleri gerekliyse koşabilirim, ama bunu bir regex yerine daha iyi yapmanın bir yolunu arıyorum. Özellikle karakter göz önüne alındığında, belgenin dolu olduğu <'. – murrayju
@Abel'in tek amacım, DOM'dan aynı şekilde ("<" olarak) geri dönmesini sağlamaktır. Ben onu .text (string) ile içine alıyorum ve '.text()' ile dışarı çıkartıyorum. Bu gidiş gelişte karşılaştığım problem, girişin çıkışa eşit olmamasıdır (sadece bu durumda). – murrayju