Как динамически установить локальное пространство имен XML? - PullRequest
2 голосов
/ 01 сентября 2010

У меня есть несколько пространств имен 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 Ответ

1 голос
/ 01 сентября 2010

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

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

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

...