Pergunta

Eu tenho vários namespaces XML que expõem o mesmo esquema.

Quero usar uma função que aceite dinamicamente um espaço para nome e aplique os atributos ou as propriedades de acordo com o espaço de nome especificado:

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

Na verdade, eu quero definir a resulção de namespace com essa função para o argumento especificado.

Olhe para isto artigo, Ele faz exatamente o que eu quero, mas tenho certeza de que, no VB.NET XML literais, há uma maneira muito mais agradável do que fazê -lo da maneira codificada.

Eu sei que posso simplesmente fazer assim:

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

Mas eu estava me perguntando se existe uma maneira de incluir espaços para nome no vb.net incrível .<>, .@, ...<> Atalhos de idiomas.

Foi útil?

Solução

Na verdade, encontrei uma solução melhor com o espaço para nome dinâmico sendo recuperado do próprio elemento:

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

Existem também alguns outros métodos de manipulação de namespace no Xelement, por isso é mais fácil torná-lo dinâmico, sem a necessidade de saber quais são os espaços para nome.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top