如何使用XmlTextReader {Namespaces = false}序列化XML?

时间:2018-09-26 14:44:10

标签: c# linq-to-xml

我有一个csproj文件,它遍历并注释了其中的某些节点。由于我想避免全部指定名称空间(LINQ2XML查询来自我的类​​的使用者,而他们不想指定名称空间),因此我设置:

var xmlTextReader = new XmlTextReader(_path) {
    Namespaces = false // avoid that hassle...
};

但是我无法输出文档:

var xmlTextReader = new XmlTextReader(_path) {
    Namespaces = false // avoid that hassle...
};

XDocument doc = XDocument.Load(xmlTextReader, LoadOptions.SetLineInfo | LoadOptions.PreserveWhitespace);
xmlTextReader.Close();

Do_some_stuff_with_doc_like_run_queries_and_comment_certain_node(doc);

var flattenedXmlContent = doc.ToString(); // throws System.Xml.XmlException:
// 'The prefix '' cannot be redefined from '' to 'http://schemas.microsoft.com/developer/msbuild/2003' within the same start element tag.'

Console.WriteLine(flattenedXmlContent);

doc.ToString()抛出上面评论中描述的异常,我是否更改doc

我知道我删除了名称空间,这就是问题的原因,但是如何既允许查询不包含名称空间又保持序列化的能力呢?

0 个答案:

没有答案