如何获取XML解析器解析的有序列表?

时间:2009-06-11 10:30:03

标签: xsd

我正在使用xsd架构文件;在那里我指定了一个有序列表。 解析类型的XML节点时......

< myOrderedList> “element_1”“element_2”“element_3”< / myOrderedList>

(这是有效的XML语法)

...我知道的所有XML解析器都将其解析为单个节点元素。 有没有办法让XML解析器为我解析这个列表(将它作为列表或数组或其他方式返回)或者我是否总是自己解析它?

2 个答案:

答案 0 :(得分:0)

为什么不利用XML构建数据的能力,并将每个元素放在自己的XML元素中? e.g。

<myOrderedList>
   <element>1</element>
   <element>2</element>
   <element>3</element>
</myOrderedList>

等。否则,您必须在XML解析器为您执行的解析工作之上实现解析(尽管以简单的方式)?

如果您执行上述操作,解析器将返回有序列表而无需任何进一步的工作,和/或您可以使用标准XML工具(如XSLT / XQuery等)更轻松地处理它。

答案 1 :(得分:0)

列表类型中的值始终用空格分隔,因此您可以轻松地通过标记生成器传递它以获取值列表。 有一些技术,如XSLT 2.0模式识别,将看到这样一个元素的值列表。

使用其他答案中提出的元素也是一种解决方案,可以简化您的处理。在XML中,子节点是有序的,因此您不必担心。可能的代表是:

<myOrderedList>
   <value>element_1</value>
   <value>element_2</value>
   <value>element_3</value>
</myOrderedList>