C# 4.0 将XComment替换为其内容
在有效的XML文件中,我有以下部分:C# 4.0 将XComment替换为其内容,c#-4.0,linq-to-xml,C# 4.0,Linq To Xml,在有效的XML文件中,我有以下部分: <PropertyGroup> <WorkingDir>C:\SomeFolder\</WorkingDir> </PropertyGroup> <ItemGroup> <Files Include="$(WorkingDir)**\*.txt" /> <!--<Files Include="$(WorkingDir)**\*.log" />-->
<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>
然而,这是我得到的输出:
<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>
C:\SomeFolder\
文件包括=“$(WorkingDir)**\*.log”/
如果我单独输出
xComment.Value
的内容(例如,使用Console.WriteLine()
),我会得到
-那么当我使用XNode.ReplaceWith()
时,尖括号会发生什么变化?如何确保保留字符格式?您需要首先解析注释中的XML,即xComment.ReplaceWith(XElement.parse(xComment.Value))
。只要注释包含单个元素节点的标记,这种方法就应该有效,就像示例中的第一条注释一样。在更一般的情况下(即注释包含多个元素的标记或其他节点的标记),您需要xComment.ReplaceWith(XElement.Parse(“+xComment.Value+”).nodes())
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>