2014-12-15 3 views
3

Мой первый вопрос здесь ...Как конвертировать XElement в XComment (C#)

Я разбора XML-файл (с помощью C#, как XDocument) и пытается отключить некоторые объекты XElement. Стандартный способ (где я работаю) - сделать их отображаемыми как xComment.

Я не мог найти никакого способа сделать это, кроме того, что он разобрал его как текстовый файл.

Результат должен выглядеть следующим образом:

<EnabledElement>ABC</EnabledElement> 
<!-- DisabledElement></DisabledElement--> 

ответ

4

Ну это не совсем, как вы просили, но это делает замену элемента с комментариями версии:

using System; 
using System.Xml.Linq; 

public class Test 
{ 
    static void Main() 
    { 
     var doc = new XDocument(
      new XElement("root", 
       new XElement("value1", "This is a value"), 
       new XElement("value2", "This is another value"))); 

     Console.WriteLine(doc); 

     XElement value2 = doc.Root.Element("value2"); 
     value2.ReplaceWith(new XComment(value2.ToString())); 
     Console.WriteLine(doc); 
    } 
} 

Выход:

<root> 
    <value1>This is a value</value1> 
    <value2>This is another value</value2> 
</root> 

<root> 
    <value1>This is a value</value1> 
    <!--<value2>This is another value</value2>--> 
</root> 

Если вы r eally хочу комментарий открытия и закрытия < и >, чтобы заменить те из элемента, вы можете использовать:

value2.ReplaceWith(new XComment(value2.ToString().Trim('<', '>'))); 

... но лично я бы не стал.

+0

«ReplaceWith (...)» отлично справился. Спасибо! –