2016-08-16 85 views
1

我想解析一个XML文件(使用VB.Net)并获取根元素的默认名称空间,以添加到将应用于不同XML对象的XMLNamespaceManager。如何在解析XML文档时获取默认名称空间?

我尝试了几种方法,但都没有工作。下面的代码片段是我最近一次尝试:

Dim rdlXml As System.Xml.XmlDocument = New System.Xml.XmlDocument() 
rdlXml.Load(reportDir & "/" & report & ".rdl") 

Dim root As XmlNode = rdlXml.DocumentElement 

Dim nsMgr as System.Xml.XmlNamespaceManager = new System.Xml.XmlNamespaceManager(rdlXml.NameTable) 
nsMgr.AddNamespace(String.Empty,root.GetNamespaceOfPrefix(String.Empty)) 

似乎这段代码并没有命名空间成功添加到nsMgr。

我在这里错过了什么?

编辑:我使用.NET 2.0

+0

根没有命名空间前缀。命名空间通常在根节点中定义,因此您必须获取根的名称空间,而不是根的前缀。 – jdweng

回答

0

用途:nsMgr.AddNamespace(String.Empty, root.NamespaceURI)

+0

嗨FloatingKiwi;你的代码答案可能有用,但在某些情况下会更好;例如,您可以解释如何以及为什么这些建议的更改可以解决提问者的问题。这将使它对他们更有用,而且对寻求类似问题解决方案的其他网站读者也更有用。 –

相关问题