以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 XSL/XSLT/XSL-FO/CSS 』 (http://bbs.xml.org.cn/list.asp?boardid=8) ---- 应Admin要求前来罐水(firefox中xsl:copy-of的问题终于解决) (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=68760) |
-- 作者:hexun831012 -- 发布时间:10/27/2008 8:59:00 PM -- 应Admin要求前来罐水(firefox中xsl:copy-of的问题终于解决) 在firefox中,copy-of(或copy)带有命名空间的节点,哪怕是默认命名空间,firefox会照样输出,但并不解析。 比如: <sitemap xmlns="http://www.hexsoft.org/schema/sitemap"> <!-- ...--> <object> <form action="/search/"> <input name="key"/> </form> </object> <!--...--> </sitemap> XSL: <xsl:template match="object"> <xsl:copy-of select="."/> </xsl:template> 在转换文档中,会输出form那段,但是并没有效果,这是为什么哪? 道理很简单,form那段在该文档中其实属于http://www.hexsoft.org/schema/sitemap命名空间下,所以在理论上,它并不是HTML,所以firefox不解析,但IE解析。 我个人认为,其实这也算是一个BUG,如果按照上述说法,copy-of应该输出命名空间声明,而firefox采取的做法却是不理会。 解决的方法有很多,比如给form加上http://www.w3.org/1999/xhtml或xmlns="",或者给主文档加上前缀,熟悉xmlns的朋友应该很好解决。 呵呵 |
-- 作者:Qr -- 发布时间:10/28/2008 8:41:00 AM -- 这个问题如果用XML+XSL方式做过WEB页或JS+DOM方式向WEB页添加元素的,应该比较熟悉了。 对于firefox来说,命名空间就是铁的纪律,非常严格。html节点下如果有任何节点不属于http://www.w3.org/1999/xhtml这个命名空间,将不被解析。唯一的做法是,给没有命名空间的节点指定命名空间,而IE的“兼容性”比较强,会忽略这一点。 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
30.762ms |