【问题标题】:Differences in closing empty tags with XML用 XML 关闭空标签的区别
【发布时间】:2014-08-20 18:46:36
【问题描述】:

在XML中,这有区别吗...

<mytag></mytag>

...还有这个?

<mytag />

我知道后者更短并且可能更惯用,但是它们的解析方式不同吗?

【问题讨论】:

  • 当然,它们的解析不同,因为它们是不同的形式。 :) 您可能的意思是,“它们有不同的语义(它们的解释方式是否相同)?”我相信答案是“是”,因为第二种形式被接受并且与第一种形式具有相同的行为。虽然,即使内容为空,我也倾向于将第一种形式用于块元素。但是,某些标签通常不会以第一种形式完成(例如&lt;br&gt;&lt;br/&gt;)。

标签: xml tags


【解决方案1】:

这两种形式在语义上没有区别。

它们在内存中的 DOM 中以完全相同的方式表示,并且允许 XML 序列化程序为空元素输出任何一个。一些序列化程序提供了一个配置选项,允许您选择您喜欢的形式。

【讨论】:

    【解决方案2】:

    埃文,

    它不会以不同的方式解析。

    实际上,我有一个两者都有的 XML,看看 ISBN 和 Model... 很可能一个有一个值,但现在没有任何值了。此 XML 是由 .net 序列化创建的。

      <SKU PartNumber="3697">
        <Product>6d690816-e06e-4a06-9205-97f0ee2f2500</Product>
        <RealPrice>145.00</RealPrice>
        <PromotionalPrice>145.00</PromotionalPrice>
        <Stock>1000</Stock>
        <FreeShipping>false</FreeShipping>
        <Dimensions>
          <Weight>0.50</Weight>
          <Height>0</Height>
          <Width>0</Width>
          <Depth>0</Depth>
        </Dimensions>
        <SpecificFields>
          <ISBN></ISBN>
          <EAN13>9780139242182</EAN13>
          <Model />
        </SpecificFields>
        <Variations />
        <Code>00000000-0000-0000-0000-000000000000</Code>
        <Status>true</Status>
        <MinStock>0</MinStock>
        <Default>true</Default>
      </SKU>
    

    【讨论】:

      猜你喜欢
      • 2014-04-29
      • 2022-03-16
      • 2017-04-15
      • 2012-12-11
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 2018-04-03
      • 1970-01-01
      相关资源
      最近更新 更多