在XML和C#中实现多对多映射的最佳方法是什么?

时间:2012-03-19 03:48:33

标签: xml linq search

我有多个数据项,每个数据项都有一个值V,它有多个与之关联的标签 - t1,t2 ... tn。我有一个XML文件,我选择存储每个项目和与之关联的标签,例如

<root>
<item>
<value>V1</value>
<tag>t11</tag>
<tag>t12</tag>
<tag>t13</tag>
</item>
<item>
<value>V2</value>
<tag>t21</tag>
<tag>t22</tag>
</item>
...
</root>

我希望能够在搜索标签时轻松查询值V.如何在不编写完整代码库的情况下有效地完成这项工作?

1 个答案:

答案 0 :(得分:1)

如果您可以控制XML,我会按照以下方式对其进行重组:

<root>
    <item value="V1">
        <tag>t11</tag>
        <tag>t12</tag>
        <tag>t13</tag>
    </item>
    <item value="V2">
        <tag>t21</tag>
        <tag>t22</tag>
    </item>
</root>

这样你就可以简单地编写一个这样的XQuery来获取给定值的所有标记:

//item[@value="V2"]/tag