XSL是否支持html,在XSL中处理HTML标记

本文介绍了一种在不同浏览器中确保HTML标签正确显示的方法。通过自定义JavaScript函数getElementsByClassName,解决了Firefox4中HTML标签未被正确解析的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

经过四处闲逛,我想我终于找到了解决问题的办法。我决定不使用JQuery,因为Firebug错误确实困扰了我。

我从How to getElementByClass而不是Java的GetElementById合并了此getElementsByClassName()函数?进入我的解决方案。我创建了自己的JS,称为\“ xml.js \”:-

xml.js

function getElementsByClassName(node,classname) {

if (node.getElementsByClassName) { // use native implementation if available

return node.getElementsByClassName(classname);

}

else {

return (function getElementsByClass(searchClass,node) {

if (node == null) {

node = document;

}

var classElements = [],

els = node.getElementsByTagName(\"*\"),

elsLen = els.length,

pattern = new RegExp(\"(^|\\\\s)\"+searchClass+\"(\\\\s|$)\"), i, j;

for (i = 0, j = 0; i < elsLen; i++) {

if ( pattern.test(els[i].className) ) {

classElements[j] = els[i];

j++;

}

}

return classElements;

})(classname, node);

}

}

window.onload=function() {

var elements = getElementsByClassName(document, \"html\");

for (var i = 0; i < elements.length; i++) {

var e = elements[i];

e.innerHTML = e.innerHTML.replace(/</g, \"\");

}

};

XSL

我在XSL中添加了此JS参考:-

我基本上在需要HTML格式的标签上添加了“ 20”,例如:

XML格式

我的XML有很多标记:-

Hello! this is a test.

Email me at Moo.

]]>

CDATA中的HTML似乎可以在浏览器中正确呈现。

更新

只是附带说明,我还尝试了删除CDATA并转义:-

<b>Hello!</b> this is a <i>test</i>.

Email me at <a href=\"mailto:cow@dung.com\">Moo</a>.

然后,我执行以下操作:

...结果如下:-

IE 8:可以正常显示。

Chrome 9:可以正常显示

Safari 5:可以正常显示

Firefox 4:不起作用-显示标签而不是粗体字。

似乎每个浏览器对渲染的处理方式都不一样...对FF4感到非常失望... ba。

至少到目前为止,我将坚持使用javascript解决方案,直到找到更好的解决方案为止。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值