Domanda

Ho diversi namespace XML che espongono lo stesso schema.

Voglio usare una funzione che accetta in modo dinamico uno spazio dei nomi e applica gli attributi o le proprietà in base allo spazio dei nomi specificato:

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

Io in realtà voglio impostare la resultion namespace withing questa funzione per l'argomento dato.

questo articolo , che fa esattamente quello che ho vogliono , ma sono sicuro che in VB.NET XML letterali c'è un modo più bello più che farlo la strada hardcoded.

So che posso semplicemente fare in questo modo:

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

Ma mi chiedevo se esiste un modo per includere spazi dei nomi in VB.NET sorprendente .<>, .@, scorciatoie lingua ...<>.

È stato utile?

Soluzione

In realtà ho trovato una soluzione migliore avendo lo spazio dei nomi dinamico viene recuperato da dell'elemento stesso:

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

Ci sono anche un paio di altri metodi namespace-manipolazione del XElement, così è più facile per renderlo reale dinamica, senza nemmeno bisogno di sapere quali sono i namespace sono.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top