类似于这个问题:
我想在投影中使用计数器或递增变量 - 但是我想在多个投影中使用相同的计数器。我正在使用基于不同数据源的多个投影构造一个 xml 文档,但需要维护一个“id”节点(其中 id 是一个递增值)。
我可以使用类似的东西为一个投影实现这一点
Dim x as New XElement("rootNode", list.Select(Of XElement)(Function(xe, count) new XElement("blah", count+1)))
然后我想将另一组 XElements 添加到根,继续从前一个值的计数器
编辑:注意 - 上面可能没有很好地描述我的问题 - 我想询问一个 xml 文档(由上面的列表表示)并基于一组节点,将一些新节点添加到另一个文档。然后在文档中查询另一组节点,并将更多新节点添加到另一个文档中,保持两组之间的递增计数器。
IE
Dim orig = <root>
<itemtype1>
<item>
<name>test</name>
<age>12</age>
</item>
<item>
<name>test2</name>
<age>13</age>
</item>
</itemtype1>
<itemtype2>
<item>
<name>testing</name>
<age>15</age>
</item>
<item>
<name>testing</name>
<age>14</age>
</item>
</itemtype2>
</root>
Dim newX As New XElement("test", orig.Descendants("itemtype1"). _
Descendants("item").Select(Of XElement)(Function(xe, count) New XElement("blah", New XElement("id", count))), _
orig.Descendants("itemtype2"). _
Descendants("item").Select(Of XElement)(Function(xe, count) New XElement("blah", New XElement("id", count))))
理想情况下,这将输出:
<test>
<blah>
<id>0</id>
</blah>
<blah>
<id>1</id>
</blah>
<blah>
<id>2</id>
</blah>
<blah>
<id>3</id>
</blah>
</test>