pau*_*doo 8 xml xslt xhtml whitespace line-breaks
我正在生成一些XML文档,当涉及到地址部分时,我的片段看起来像这样:
<Address>15 Sample St
Example Bay
Some Country</Address>
Run Code Online (Sandbox Code Playgroud)
我将它转换为XHTML的XSLT有一些时髦的递归模板,可以将字符串中的换行符转换为<br/>标签.
这一切都很好; 但依赖XML文档中的换行符会被视为"不良做法"吗?如果是这样,建议我这样做吗?
<Address><Line>15 Sample St</Line>
<Line>Example Bay</Line>
<Line>Some Country</Line></Address>
Run Code Online (Sandbox Code Playgroud)
看起来像包裹那样的文本可能是多行的每个地方都很尴尬.
通常认为依赖于换行符是不好的做法,因为它是区分数据的一种脆弱方式.虽然大多数XML处理器将保留您放入XML中的任何空白,但并不能保证.
真正的问题是,大多数将XML输出为可读格式的应用程序都认为XML中的所有空格都是可互换的,并且可能会将这些换行符折叠到一个空格中.这就是为什么你的XSLT必须跳过这样的箍来正确渲染数据的原因.使用"br"标签可以大大简化转换.
另一个潜在的问题是,如果您在XML编辑器中打开XML文档并对其进行漂亮打印,则可能会丢失这些换行符.
如果您继续使用换行符,请确保将"xml:space ="preserve"属性添加到"地址".(如果您使用DTD,可以在DTD中执行此操作.)
有人建议阅读
XML应用程序似乎往往对空白采取傲慢的态度,因为有关空格无关紧要的XML文档中的位置规则有时会使这些应用程序自由地添加或删除某些位置的空格.