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

StackOverflow https://stackoverflow.com/questions/3614468

Вопрос

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

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

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

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

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

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

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

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

Это было полезно?

Решение

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top