Question

J'ai plusieurs espaces de noms XML qui exposent le même schéma.

Je veux utiliser une fonction qui accepte dynamiquement un espace de noms et applique les attributs ou les propriétés selon l'espace de noms spécifié:

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

Je veux vraiment définir l'espace de noms resultion withing cette fonction à l'argument donné.

Regardez cet article , il fait exactement ce que je veux , mais je suis sûr que dans les littéraux XML VB.NET il y a une façon beaucoup plus agréable que de le faire de la façon hardcoded.

Je sais que je peux simplement le faire comme ceci:

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

Mais je me demandais s'il y a un moyen d'inclure dans les espaces de noms VB.NET .<> étonnant, .@, les raccourcis linguistiques ...<>.

Était-ce utile?

La solution

J'ai trouvé une meilleure solution ayant l'espace de noms dynamique étant récupéré à partir de l'élément lui-même:

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

Il y a aussi quelques autres espaces de noms manipulant des méthodes dans le XElement, il est donc plus facile de le rendre réel dynamique, sans même besoin de savoir ce que les espaces de noms.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top