代码之家  ›  专栏  ›  技术社区  ›  Shimmy Weitzhandler 500 - Internal Server Error

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

  •  2
  • Shimmy Weitzhandler 500 - Internal Server Error  · 技术社区  · 14 年前

    我有几个XML名称空间公开了相同的模式。

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

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

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

    this 文章, 他做的正是我想要的 但我相信,在vb.net XML文本中,有一种比用硬编码方式更好的方法。

    我知道我可以这样做:

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

    但是我想知道是否有一种方法可以在vb.net中包含名称空间 .<> , .@ , ...<> 语言快捷方式。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Shimmy Weitzhandler 500 - Internal Server Error    14 年前

    实际上,我发现了一个更好的解决方案,可以从元素本身检索动态名称空间:

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

    Xelement中还有一些其他的名称空间操作方法,因此更容易使其成为真正的动态的,甚至不需要知道名称空间是什么。

    推荐文章