6

我有一个小问题,我认为这很简单……但是唉……

我有一些 xml,我想做的就是xml:space="preserve"使用 c# 添加到根元素。

我试过这个:

var rootElem = xDoc.Root; // XDocument
rootElem.SetAttributeValue("{xml}space", "preserve");

结果是:

<ProjectDetails xmlns="http://site/ppm" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" p3:space="preserve" xmlns:p3="xml">

认为这相当于

<ProjectDetails xmlns="http://site/ppm" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:space="preserve">

但既然xml:space是特殊属性,我有点怀疑。

所以:

他们是一样的吗?

有没有办法以“干净”的方式将其添加到文档中?

4

1 回答 1

10

你只需要正确的XName值 - 我会用这个:

doc.Root.SetAttributeValue(XNamespace.Xml + "space", "preserve");

根据XName +(XNamespace, string)我的经验,运算符通常是在 LINQ to XML 中使用命名空间的最简单方法。

于 2016-03-07T14:32:44.393 回答