В допустимом XML-файле у меня есть следующий раздел:
<PropertyGroup>
<WorkingDir>C:\SomeFolder\</WorkingDir>
</PropertyGroup>
<ItemGroup>
<Files Include="$(WorkingDir)**\*.txt" />
<!--<Files Include="$(WorkingDir)**\*.log" />-->
<Files Include="$(WorkingDir)**\*.bat" />
<!--<Files Include="$(WorkingDir)**\*.ps1" />
<Files Include="$(WorkingDir)**\*.psm" />-->
<Files Include="$(WorkingDir)**\*.cmd" />
</ItemGroup>
Я загружаю его с помощью XDocument, а затем могу получить список комментариев с помощью XComment - но предположим, что мне нужен только первый:
var xComment = (doc.Elements().DescendantNodes().OfType<XComment>().First();
Теперь я хочу заменить этот комментарий его фактическим содержанием:
xComment.ReplaceWith(xComment.Value);
Однако, вот что я получаю в качестве вывода:
<PropertyGroup>
<WorkingDir>C:\SomeFolder\</WorkingDir>
</PropertyGroup>
<ItemGroup>
<Files Include="$(WorkingDir)**\*.txt" />
<Files Include="$(WorkingDir)**\*.log" />
<Files Include="$(WorkingDir)**\*.bat" />
<!--<Files Include="$(WorkingDir)**\*.ps1" />
<Files Include="$(WorkingDir)**\*.psm" />-->
<Files Include="$(WorkingDir)**\*.cmd" />
</ItemGroup>
Если я вывожу содержимое xComment.Value
отдельно (например, используя Console.WriteLine()
), я получу <Files Include="$(WorkingDir)**\*.log" />
- так что происходит с угловыми скобками, когда я использую XNode.ReplaceWith()
?Как обеспечить сохранение форматирования символов?