:LINQ to XMLステートメントで兄弟XElementsを返す方法は?次のXML入力から
<root>
<node name="one" value="1"/>
<node name="two" value="2"/>
<node name="three" value="3"/>
<node name="four" value="4"/>
</root>";
私は次のことを生成するためにXMLにLINQを使用する必要があります。
<root>
<name content="one"/>
<value content="1"/>
<name content="two"/>
<value content="2"/>
<name content="three"/>
<value content="3"/>
<name content="four"/>
<value content="4"/>
</root>
このコードは名前要素ではなく、値要素を生成。
var input = @"
<root>
<node name=""one"" value=""1""/>
<node name=""two"" value=""2""/>
<node name=""three"" value=""3""/>
<node name=""four"" value=""4""/>
</root>";
var xml = XElement.Parse(input);
var query = new XElement("root",
from p in xml.Elements("node")
select new XElement("name",
new XAttribute("content", p.Attribute("name").Value) /*,
new XElement("value", new XAttribute("content", p.Attribute("value").Value)) */
)
);
私は最後の括弧内値のXElement(上記コメントアウト)が含まれている場合、それは名前要素の子ではありませんが、閉じ括弧の外にそれはもはやQへのアクセス権を持っている (これはクエリの外にあります)。
2つのXElementを連結したり、何らかのXMLを生成しない別のコレクションにそれらを含める必要があるように感じます。
これは何をしているのですか。今私が実際のコードにそれを適用できるかどうかを見てみましょう。それを理解するのに分かった。 –
+1これはよりエレガントな方法です。 –