2009-07-16 13 views

答えて

4

私は、これはあなたが後にしている何を思う:

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について十分にはわかりません。すべてのテキストノードの参照をリストにコピーすると、最初は私にとって安全です:)

関連する問題