C# 创建属性为C的XML元素“有额外的xmls=”&引用;
以下是我的要求。我正在读取xml文件(*.csproj文件)并在其中搜索节点。找到节点后,我会将元素插入其中。 以下是我的原始XML:C# 创建属性为C的XML元素“有额外的xmls=”&引用;,c#,xml,C#,Xml,以下是我的要求。我正在读取xml文件(*.csproj文件)并在其中搜索节点。找到节点后,我会将元素插入其中。 以下是我的原始XML: <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup&g
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ClInclude Include="Stdafx.h" />
<ClInclude Include="NewFile.h" />
</ItemGroup>
</Project>
这是我得到的输出
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ClInclude Include="Stdafx.h" />
<ClInclude Include="NewFile.h" />
<ClInclude Include="NewHeaderFile.h" xmlns="" />
</ItemGroup>
</Project>
问题陈述:
我想忽略输出中的xmlns=”“。
我的输出应该是这样的
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ClInclude Include="Stdafx.h" />
<ClInclude Include="NewFile.h" />
<ClInclude Include="NewHeaderFile.h" />
</ItemGroup>
</Project>
金迪,帮帮我。
感谢您的宝贵时间。使用以下内容更改您的元素声明,应该可以使用
XmlElement xele = xDoc.CreateElement("ClInclude", xDoc.DocumentElement.NamespaceURI);
在根上添加名称空间意味着您的元素位于
'root'名称空间
,因此无需向新元素添加'no namespace'
,原始文档中的所有元素都位于名称空间xmlns=”http://schemas.microsoft.com/developer/msbuild/2003“
,而您正在空名称空间“
中创建新的ClInclude
元素。如果您还在xmlns=”中创建此元素http://schemas.microsoft.com/developer/msbuild/2003“
,将从输出xml中忽略无关的xmlns=”“
。花点时间阅读帮助中心中的。堆栈溢出上的格式设置与其他站点不同。你的帖子越好看,用户就越容易帮助你。谢谢@StuartLC的帮助。正如你所说的那样。我用原始名称空间创建了元素。谢谢@InvernoMuto的帮助。更改元素声明后,它按我预期的那样工作。
XmlElement xele = xDoc.CreateElement("ClInclude", xDoc.DocumentElement.NamespaceURI);