为何XML标签在Internet Explorer显示正常但在记事本中出现重叠?
问题根因与解决方法
根因说明
你使用的Liquid模板语法中,{%- 与 -%} 属于空白控制标记:{%- 会清除标记左侧的所有空白(包括换行符),-%} 会清除标记右侧的所有空白。for循环首尾的-会吃掉每次循环结束后的换行符,导致渲染后的XML标签没有换行,纯文本工具(如记事本)打开就会出现标签重叠的情况。IE作为XML解析器会自动忽略文本空白,因此展示正常。
修复方案
移除for循环标记两端的空白控制符-即可保留换行,修改后的代码如下:
<FormB1Records> <FormB1Details> {% for doc in docData.supportingDocs %} <SupprtingDocBlock> <DocumentName>{{ doc.name }}</DocumentName> <DocumentType>{{ doc.type }}</DocumentType> </SupprtingDocBlock> {% endfor %}
如果需要保留左侧空白缩进,也可以仅移除endfor标记右侧的-,将{%- endfor -%}修改为{%- endfor %},同样可以解决换行丢失的问题。
额外提示:当前标签
<SupprtingDocBlock>存在拼写错误,正确拼写应为<SupportingDocBlock>,建议同步修正避免后续XML校验报错。
内容的提问来源于stack exchange,提问作者Asha Shokand
相关产品推荐
相关产品推荐

