Dim BaseItem As XElement = _ <Root> <Item id="1">a</Item> <Item id="2">b</Item> <Item id="3">c</Item> <Item id="4">d</Item> <Item id="5">e</Item> </Root> 'XML変換のクエリ??実行 Dim NewItem As XElement = _ <root> <%= From C In BaseItem.Descendants("Item") Select <item id=<%= C.@id %>><%= C.Value %> <%= From D In BaseItem.Descendants("Item") Where C.@id <> D.@id Select <item2 id=<%= D.@id %>><%= D.Value %></item2> %> </item>%> </root> Console.WriteLine(NewItem)
BaseItemはサンプルなのでプログラム中で作成しました。
xElelemtはメモ帳で書くようにして作成できるので結構便利♪
クエリ??で体裁を整えます。
文章中に<%= ~ %>までの間に式を埋め込んでいきます。
今まで(私はですが…)二段でループさせていたのがループを書かずに作成できるようになりました。
上記のサンプルコードではBaseItemのItemノードの子ノードに親ノードの@IDが一致しないものがNewItemに生成されます。ちょっとややこしいく見えますが、コードを見やすいように改行するとわかりやすくなると思います。
また、プログラム内にスキーマを定義していればインテリセンス??(コードの候補の事)が表示されるらしい…
…が、検証してません(^^ゞ
xElelemtはメモ帳で書くようにして作成できるので結構便利♪
クエリ??で体裁を整えます。
文章中に<%= ~ %>までの間に式を埋め込んでいきます。
今まで(私はですが…)二段でループさせていたのがループを書かずに作成できるようになりました。
上記のサンプルコードではBaseItemのItemノードの子ノードに親ノードの@IDが一致しないものがNewItemに生成されます。ちょっとややこしいく見えますが、コードを見やすいように改行するとわかりやすくなると思います。
また、プログラム内にスキーマを定義していればインテリセンス??(コードの候補の事)が表示されるらしい…
…が、検証してません(^^ゞ
タグ
コメントをかく