Как динамически установить локальное пространство имен 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 также есть несколько других методов манипулирования пространством имен, поэтому проще сделать его динамичным, даже не нужно знать, что такое пространства имен.