Как динамически установить локальное пространство имен XML?

У меня есть несколько пространств имен XML, которые предоставляют одну и ту же схему.

Я хочу использовать функцию, которая динамически принимает пространство имен и применяет атрибуты или свойства в соответствии с указанным пространством имен:

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

Я на самом деле хочу установить разрешение пространства имен с помощью этой функции для данного аргумента.

Посмотрите на эту статью, он делает именно то, что я хочу, но я уверен, что в VB.NET XML Literals есть намного более хороший способ, чем делать это жестко.

Я знаю, что могу просто сделать это так:

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

Но мне было интересно, есть ли способ включить пространства имен в VB.NET? .<>, .@, ...<> языковые ярлыки.

1 ответ

Решение

На самом деле я нашел лучшее решение, имеющее динамическое пространство имен, извлекаемое из самого элемента:

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

В XElement также есть несколько других методов манипулирования пространством имен, поэтому проще сделать его динамичным, даже не нужно знать, что такое пространства имен.

Другие вопросы по тегам