2011-10-03 3804 views
2

我正在使用xmlreader读取xml文件。问题是我有很多未定义的子元素中的命名空间。正因为如此,我无法阅读文件的内容。有什么方法可以阅读避免这个问题的文件内容,或者是否有解决方案来处理这些类型的场景?忽略XmlReader中的命名空间

+1

你能发布一个小的XML片段来显示你的问题吗? –

+2

你是什么意思,他们是不确定的?如果给定名称空间前缀没有真正的名称空间声明,那么你有垃圾,而不是XML。 –

+0

未定义,它们未在根元素中定义,但已在其后代中使用 –

回答

1

您可以像这样将缺少的名称空间添加到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)) 
{ 
}