如何动态设置本地XML命名空间?

时间:2010-09-01 01:35:49

标签: vb.net .net-4.0 xelement xml-literals xnamespace

我有几个公开相同架构的xml命名空间。

我想使用一个动态接受命名空间的函数,并根据指定的命名空间应用属性或属性:

Public Sub ProcessElement(element As XElement, [namespace] As XNamespace)
  element.<[namespace]:Property>.Remove()
End Sub

我实际上想要使用此函数将名称空间结果设置为给定的参数。

查看this文章,他的确完全符合我的要求,但我确信在VB.NET XML Literals中有一种比以硬编码方式更好的方式。

我知道我可以这样做:

element.Elements([namespace] + "Property").Remove()

但我想知道是否有办法在VB.NET中包含令人惊讶的.<>.@...<>语言快捷方式的命名空间。

1 个答案:

答案 0 :(得分:1)

我实际上找到了一个更好的解决方案,从元素本身检索动态命名空间:

Public Sub ProcessElement(element As XElement)  
  Dim [namespace] = element.GetDefaultNamespace()
  element.<[namespace]:Property>.Remove()  
End Sub 

XElement中还有一些其他的命名空间操作方法,所以更容易使它真正动态化,甚至不需要知道命名空间是什么。