我正在生成一些XML文档,当涉及到地址部分时,我会看到如下片段:
<Address>15 Sample St
Example Bay
Some Country</Address>
用于将其转换为XHTML的XSLT具有一些时髦的递归模板,可以将字符串中的换行符转换为
标记。
一切正常。但是依靠XML文档中的换行符被认为是“不好的做法”吗?如果是这样,建议我改为这样做吗?
<Address><Line>15 Sample St</Line>
<Line>Example Bay</Line>
<Line>Some Country</Line></Address>
将我的文本可能用这样的标记多行包装的每个地方似乎真的很尴尬。
通常,依靠换行符被认为是不好的做法,因为这是区分数据的脆弱方法。尽管大多数XML处理器会保留您放入XML中的所有空格,但不能保证。
真正的问题是,大多数将XML输出为可读格式的应用程序都考虑到XML可互换的所有空格,并且可能会将这些换行符折叠到一个空格中。这就是为什么您的XSLT必须跳过这种箍以正确呈现数据的原因。使用“ br”标签将极大地简化转换。
另一个潜在的问题是,如果在XML编辑器中打开XML文档并进行漂亮打印,则很可能会丢失这些换行符。
如果您确实继续使用换行符,请确保在“地址”中添加xml:space =“ preserve”属性。(如果您正在使用DTD,则可以在DTD中执行此操作。)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。