xml中的数组定义

Nic*_*ick 29 xml arrays

在XML中,如何声明整数数组?

我可以声明如下:

<numbers type="array">
    <value>3</value>
    <value>2</value>
    <value>1</value>
</numbers>
Run Code Online (Sandbox Code Playgroud)

但可能有更简单的方式吗?

<numbers [3,2,1]></numbers>
Run Code Online (Sandbox Code Playgroud)

car*_*ira 25

第二种方式不是有效的XML; 你的意思是<numbers>[3,2,1]</numbers>

如果是这样,那么第一个是首选的,因为你需要获得数组元素就是一些XML操作.在第二个上,您首先需要通过XML操作获取<numbers>元素的值,然后以某种方式[3,2,1]使用其他东西解析文本.

或者如果你真的想要一些紧凑的格式,你可以考虑使用JSON("本机"支持数组).但这取决于您的应用要求.

  • 您始终可以将它们包装在较小的内容中,例如<v> 3 </ v> <v> 2 </ v> <v> 1 </ v>,但XML的简洁性并不为人所知...... (5认同)
  • 是的,我很乐意使用 JSON 或 Yaml,但我必须使用 XML。对我来说,我必须用 &lt;value&gt; 和 &lt;/value&gt; 标签包装数组的每个数字,这看起来有点奇怪......对于数字数组这样简单的东西来说,这是一个过于复杂的语法。 (2认同)

Lar*_*ars 16

不,没有更简单的方法.你只能输掉type=array.

<numbers>
    <value>3</value>
    <value>2</value>
    <value>1</value>
</numbers>
Run Code Online (Sandbox Code Playgroud)

  • 我认为删除type属性不是一个好主意。如果&lt;numbers&gt;仅包含一个元素,则不清楚它是一个数组。当将type指定为数组时,将更容易告诉xml解析器如何处理该对象,以防止解析不一致。 (2认同)

Ste*_*nov 6

一旦我看到这样一个有趣的结构:

<Ids xmlns:id="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <id:int>1787</id:int>
</Ids>
Run Code Online (Sandbox Code Playgroud)