在XML世界中,最好在文件中留下空白元素:
<widgets>
<widget>
<id>5</id>
<name>Bob</name>
<price>5.33</price>
<otherInfo>Bob is a ball.</otherInfo>
<dateAdded>9-5-2010</dateAdded>
</widget>
<widget>
<id>3</id>
<name>Mary</name>
<price>4.67</price>
<otherInfo></otherInfo>
<dateAdded>10-1-2010</dateAdded>
</widget>
</widgets>
或删除它们:
<widgets>
<widget>
<id>5</id>
<name>Bob</name>
<price>5.33</price>
<otherInfo>Bob is a ball.</otherInfo>
<dateAdded>9-5-2010</dateAdded>
</widget>
<widget>
<id>3</id>
<name>Mary</name>
<price>4.67</price>
<dateAdded>10-1-2010</dateAdded>
</widget>
</widgets>
对于解析,如果它们在那里会更容易,因为在尝试获取它之前不需要检查元素是否存在。另一方面,XML文件不会出现空白元素。
最佳做法是否规定了一种存储形式与另一种存储形式,或者它取决于存储的数据?
答案 0 :(得分:3)
这取决于存储的数据。
对于某些元素,只需元素的状态就会产生巨大的差异 - HTML中的一个简单示例是<hr />
或<br />
。对于其他数据格式,它没有任何区别。
您通常应该知道您正在处理的数据类型 - 理解数据格式的一部分是了解空元素是否重要。
答案 1 :(得分:2)
这取决于应用程序。 空白标签具有含义,如果它不存在则不一样。 根据应用程序的设计,需要保留或不保存。
我已经看到很多应用程序,其中空白和/或自闭标签(<otherInfo/>
)在应用程序中具有含义,如果它们不存在,则应用程序将停止工作。
给你举个例子: 在magento中,一些缓存后端需要缓存前缀。如果它的空白是一个空白的前缀,但如果它不存在则它将无效。这将是你的“空白”标签的一个例子。
我使用的另一个应用程序是用于机顶盒视频点播提供程序的目录API。
有一个节点<itempurchased/>
表示该商品已被购买且可以投放。我个人不喜欢这个设计因为它的暧昧。我会设计它像<itempurchased>true</itempurchased>
或<itempurchased bought="true/>
或其他东西,但你就是这个共同合作的世界:)。
所以他们 DO 包含一个值。它是长度为零的字符串。
如果您不想更改数据,则必须保留空标记和自闭标记。
答案 2 :(得分:-2)
我认为没有这方面的标准。
如果您正在进行解析以及创建XML文件,我会选择更方便的内容。更改代码或维护或多或少易于理解的文件。
如果其他人将创建XML文件,那么我会说列表中几个字段需要空格,而且许多字段允许删除一些字段。
但请记住,如果该领域不存在,除非他们阅读文件,否则没有人会存在