以文本方式查看主题

-  W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL  (http://bbs.xml.org.cn/index.asp)
--  『 XML基础 』  (http://bbs.xml.org.cn/list.asp?boardid=1)
----  [求助]有关于行结束符之于XML解析器的处理  (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=73884)


--  作者:红衣刺客
--  发布时间:4/6/2009 1:03:00 AM

--  [求助]有关于行结束符之于XML解析器的处理
大家好,小弟是XML新手,最近在学习XML语法的过程中遇到一个XML解析器关于行结束符处理的问题。
众所周知Windows下的行结束符是 \r\n,Unix/Linux下是 \n,而Mac下是 \r,那么XML解析器在对存在换行的元素内容处理时,对与不同平台下的行结束符是怎样一个处理策略呢?

例如:
<name>
hello
world!

ui
</name>

hello与world!之间有一个行结束符,而world!与ui之间则有两个,但我在firefox与IE中显示的效果均是:
<name>hello world! ui</name>

也就是hello,world!,ui之间都只有一个空格,这是由于XML解析器默认将所有紧邻的行结束符替换为一个空格的处理策略,还是firefox与IE只是将其“显示”成一个空格以方便阅读?还请各位前辈高人不吝指教。


--  作者:Qr
--  发布时间:4/6/2009 11:16:00 AM

--  
尽管 XML 处理器保留元素内容中的所有空白,但是通常会将属性值中的空白标准化。制表符、回车符和空格均报告为单个空格。在某些类型的属性中,将删除值主体之前或之后的空白,将值中的空白减小为单个空格。
--  作者:红衣刺客
--  发布时间:4/6/2009 12:35:00 PM

--  
以下是引用Qr在2009-4-6 11:16:00的发言:
尽管 XML 处理器保留元素内容中的所有空白,但是通常会将属性值中的空白标准化。制表符、回车符和空格均报告为单个空格。在某些类型的属性中,将删除值主体之前或之后的空白,将值中的空白减小为单个空格。


可是在示例中,并不是元素属性区存在多个行结束符,而是元素内容区,也就是PDATA,存在多个行结束符,这时浏览器的显示应当如何解释呢?谢谢!
--  作者:Qr
--  发布时间:4/6/2009 1:18:00 PM

--  
同样。
--  作者:hexun831012
--  发布时间:4/6/2009 9:20:00 PM

--  
好好看看xml white space
--  作者:deckie
--  发布时间:4/25/2009 11:42:00 PM

--  
浏览器将所有的空格、制表符、回车、换行都显示成一个空格,如果你确实需要显示它们,就需要使用这种形式“&amp;”来处理,是有办法的。
--  作者:hexun831012
--  发布时间:4/28/2009 10:49:00 PM

--  
以下是引用deckie在2009-4-25 23:42:00的发言:
浏览器将所有的空格、制表符、回车、换行都显示成一个空格,如果你确实需要显示它们,就需要使用这种形式“&amp;”来处理,是有办法的。


LS说的不错,就是要把浏览器换成解析器
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms