在XML中,有很多元素在很多地方使用。示例列表如下
<platform>PLAT_X86_SLES_11_SP3</platform>
<platform>PLAT_X86_64_SLES_11_SP3</platform>
<platform>PLAT_X86_SLES_12</platform>
<platform>PLAT_X86_64_SLES_12</platform>
<platform>PLAT_X86_SLES_12_SP1</platform>
<platform>PLAT_X86_64_SLES_12_SP1</platform>
<platform>PLAT_X86_SLES_12_SP2</platform>
<platform>PLAT_X86_64_SLES_12_SP2</platform>
<platform>PLAT_X86_RHEL_6_5</platform>
<platform>PLAT_X86_64_RHEL_6_5</platform>
该列表正在全部使用,仅在下面的许多地方排除2或3个平台。
<platform_support>
<platform>PLAT_X86_SLES_11_SP3</platform>
<platform>PLAT_X86_64_SLES_11_SP3</platform>
<platform>PLAT_X86_SLES_12</platform>
<platform>PLAT_X86_64_SLES_12</platform>
<platform>PLAT_X86_SLES_12_SP1</platform>
<platform>PLAT_X86_64_SLES_12_SP1</platform>
</platform_support>
我想要做的是,我想在开头定义一个完整的列表,并在我的标记中使用它的引用。如下所示:
<platforms>
<platform index="1">PLAT_X86_SLES_11_SP3</platform>
<platform index="2">PLAT_X86_64_SLES_11_SP3</platform>
<platform index="3">PLAT_X86_SLES_12</platform>
<platform index="4">PLAT_X86_64_SLES_12</platform>
<platform index="5">PLAT_X86_SLES_12_SP1</platform>
<platform index="6">PLAT_X86_64_SLES_12_SP1</platform>
<platform index="7">PLAT_X86_SLES_12_SP2</platform>
<platform index="8">PLAT_X86_64_SLES_12_SP2</platform>
<platform index="9">PLAT_X86_RHEL_6_5</platform>
<platform index="10">PLAT_X86_64_RHEL_6_5</platform>
</platforms>
用法如下:
<platform_support index_list="1,2,3,4,5,6">
</platform_support>
另一种用法如下:
<platform_support index_list="3,4,5,6,7,8">
</platform_support>
我不知道XML中是否有任何此类功能可用。如果您有任何想法我如何实现这一点请提及。
这样做是个好主意吗?因为每次需求的微小变化都需要改变很多地方。这只是我写的一个例子。我拥有4500行代码的巨大XML,其中包含许多此类列表。
答案 0 :(得分:0)
看起来我不是很擅长,但这是我可以提供的。 XML中有一个名为XQuery的漂亮主题,它将对您有所帮助。 将XQuery视为数据库的SQL,您可以查询使用它的xmal数据。
XQuery有一个序列,可以是$ items = 1,2,3,5,89或$ items = orange,apple,somenames,anything
所以这是一个提示。 您可以使用索引属性,如上所示,在您的问题中与FLOWR(Xquery技术)一起使用,并使用您的自定义列表作为序列。 这是关于我在说什么的提示
https://www.tutorialspoint.com/xquery/xquery_sequences.htm
https://www.tutorialspoint.com/xquery/xquery_flwor.htm
注意FLOWR可以嵌套,非常棒。