C# 忽略XmlReader中的命名空间

C# 忽略XmlReader中的命名空间,c#,xml,xmlreader,C#,Xml,Xmlreader,我正在使用xmlreader读取xml文件。问题是在子元素中有许多未定义的名称空间。因此,我无法读取文件的内容。是否有任何方法可以读取文件内容以避免此问题,或者是否有任何解决方案来处理此类情况?您可以像这样将缺少的名称空间添加到XmlReader中 var settings = new XmlReaderSettings { NameTable = new NameTable(), }; XmlNamespaceManager xmlns = new XmlNamespaceManage

我正在使用xmlreader读取xml文件。问题是在子元素中有许多未定义的名称空间。因此,我无法读取文件的内容。是否有任何方法可以读取文件内容以避免此问题,或者是否有任何解决方案来处理此类情况?

您可以像这样将缺少的名称空间添加到XmlReader中

var settings = new XmlReaderSettings
{
    NameTable = new NameTable(),
};
XmlNamespaceManager xmlns = new XmlNamespaceManager(settings.NameTable);
xmlns.AddNamespace("yourundeclarednamespace", "http://www.dummynamespace.org");
XmlParserContext context = new XmlParserContext(null, xmlns, "", XmlSpace.Default);
using (var reader = XmlReader.Create(filePath, settings, context))
{
}

你能发布一个小的XML片段来说明你的问题吗?你说它们没有定义是什么意思?如果给定的名称空间前缀确实没有名称空间声明,那么您有垃圾,而不是XML。从某种意义上说,它们没有在根元素中定义,而是在其子元素中使用。注意:到目前为止,问题中没有解释/显示任何问题-提供示例XML、代码、错误和预期行为。