Frage

Ich habe mehr XML-Namespaces, das das gleiche Schema aus.

Ich möchte eine Funktion verwenden, die dynamisch einen Namespace akzeptiert und wendet die Attribute oder die Eigenschaften nach dem angegebenen Namespace:

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

Ich mag eigentlich den Namespace resultion withing diese Funktion auf das gegebene Argument setzen.

Lesen Sie dieser Artikel, er tut genau das, was ich will , aber ich bin sicher, dass in VB.NET XML-Literale gibt eine viel schönere Art und Weise ist, als es die hartcodierte Weise.

Ich weiß, dass ich es einfach so machen kann:

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

Aber ich frage mich, ob es einen Weg gibt Namespaces in VB.NET erstaunliche .<> enthalten, .@, ...<> Sprachkombinationen.

War es hilfreich?

Lösung

Ich fand eine bessere Lösung des dynamischen Namensraum aus dem Element abgerufen werden selbst:

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

Es gibt auch ein paar andere Namespace-manipulierenden Methoden in der XElement, so dass es einfacher ist, es wirklich dynamisch zu machen, ohne selbst müssen wissen, was die Namensräume sind.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top