2010-09-01 63 views
2

我有几个暴露相同模式的XML命名空间。如何动态设置本地XML命名空间?

我想用动态接受命名空间和应用的属性或属性根据指定的命名空间的功能:

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

其实我是想设定的命名空间resultion withing这个功能给定的参数。

this文章,他究竟是什么,我想,但我相信,在VB.NET XML文本有比做得硬编码的方式好得多的办法。

我知道我可以简单的做这样的:

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

但我不知道是否有一种方法可以包括在VB.NET命名空间惊人.<>[email protected]...<>语言快捷键。

回答

1

我居然发现从元件本身被检索具有动态命名空间更好的解决方案:

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

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