Pregunta

Tengo varios espacios de nombres XML que exponen el mismo esquema.

Quiero utilizar una función que acepta un espacio de nombres de forma dinámica y aplica los atributos o las propiedades de acuerdo con el espacio de nombres especificado:

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

De hecho, me quiero fijar el espacio de nombres resultion withing esta función para el argumento dado.

este artículo , que hace exactamente lo que yo desee , pero estoy seguro de que en VB.NET XML literales hay una manera más agradable mucho más que hacerlo de la manera codificada.

Sé que puedo hacerlo simplemente así:

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

Pero me preguntaba si hay una manera de incluir espacios de nombres en VB.NET increíble .<>, .@, atajos de lenguaje ...<>.

¿Fue útil?

Solución

I encuentra realmente una mejor solución que tiene el espacio de nombres dinámico que se recupera desde el propio elemento:

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

También hay algunos otros métodos de espacio de nombres de manipulación en el XElement, por lo que es más fácil de hacerlo dinámico real, sin necesidad siquiera saber lo que son los espacios de nombres.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top