私は、これはあなたが後にしている何を思う:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
class Test
{
static void Main()
{
string xml = "<element1>hello<element2>there"
+ "</element2>my friend</element1>";
XElement element = XElement.Parse(xml);
List<XText> textNodes = element.DescendantNodes()
.OfType<XText>()
.ToList();
foreach (XText textNode in textNodes)
{
textNode.ReplaceWith (new XElement
("text", new XAttribute("value", textNode.Value)));
}
Console.WriteLine(element);
}
}
それはあなたが「ライブ」クエリでの交換を行うことができている可能性がありますが、私は常に警戒していそれを反復しながらドキュメントを操作する - それが動作することを確かめるために、LINQ to XMLについて十分にはわかりません。すべてのテキストノードの参照をリストにコピーすると、最初は私にとって安全です:)