XML 解析器如何处理(数据中的)空白?
如果这是示例 XML::
<root>
<tag1>data
data
data</tag1>
<tag2>
</tag2>
<tag3> </tag3>
</root>
该文件在不同的浏览器和 XML 查看器/编辑器中的查看方式不同,
某些查看器会将第一个
元素显示为
一些按原样显示,
有些观众将换行视为nbsp(空格),有些则将空格和新行视为null,
这个空白问题的标准方法是什么?
If this is a sample XML::
<root>
<tag1>data
data
data</tag1>
<tag2>
</tag2>
<tag3> </tag3>
</root>
This file is viewed differently in different browsers and XML viewer/editors,
some viewers display 1st <tag/>
element as <tag>data data data</tag>
some display as is,
Some viewers, treat new line as nbsp(space) and some treat space and new line as null,
What is the standard approach for this white-space issue?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
http://www.w3.org/TR/REC-xml/ #sec-white-space
我相信这意味着它是可选的,但默认行为应该是忽略不重要的空格。
您能给我一个显示换行符的实现示例吗?
http://www.w3.org/TR/REC-xml/#sec-white-space
I believe that means it is optional but default behaviour should be to ignore non-significant whitespace.
Can you give me an example of an implementation which is showing the line breaks?
结论
我针对定义了
的 XSD 验证了相同的 XML <标签2/> ...
具有枚举值(复制了标签的相同值),当我通过添加/删除空格来更改
的内容时。该架构承认不匹配,得出的结论是..一般来说 XML 解析器不会忽略空格:)但是转换会忽略空格,这就是为什么浏览器也会忽略它,因为记事本会诚实地按原样显示。 ;)
Source/courtesy :: Nic Gibson 对 jambox 的答案
Conclusion
I validated the same XML against XSD which had defined
<tag1/> <tag2/> ...
with enumeration values, (copied same value of the tags) when I altered the contents of<tag>
by adding/removing whitespace. The schema acknowledged mismatch which concludes that .. in general XML parser won't ingore the whitespace :)But the transformation ignores whitespace, thats why the browsers ignore it too where as notepad is honest to display as is. ;)
Source/courtesy :: Nic Gibson's comment on jambox's answer