我听说使用单引号来包围XML属性值是一种“糟糕的风格”。这是对的吗?
我应该总是写:
<element attr="value">
或者可以写:
<element attr='value'>
或者我使用哪种风格无关紧要?
答案 0 :(得分:69)
两者都是合法的。选择一个并坚持下去。没关系。
来自spec:
AttValue ::= '"' ([^<&"] | Reference)* '"'
| "'" ([^<&'] | Reference)* "'"
显示两者都有效,就像在元素中混合两种样式一样,每个属性(尽管我建议在任何单个文档/文档集中保持一致)。
答案 1 :(得分:19)
双引号更常见,任何特定社区为了保持一致而采用房屋风格是完全可以接受的,但是一种说明,即一种做法更好的说法是没有理由的。
提出这样的建议也很危险,因为它鼓励那些尝试使用正则表达式而不是使用真正的XML解析器来解析XML的“绝望的黑客”,并且总是只能成功处理XML合法允许的子集。
如果我从Java应用程序手动生成XML,我倾向于使用单引号 - 尽管我越来越倾向于认为手工生成XML几乎和手工解析它一样危险。