2

同じスキーマを公開するxml名前空間がいくつかあります。

名前空間を動的に受け入れ、指定された名前空間に従って属性またはプロパティを適用する関数を使用したい:

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

私は実際に、この関数を使用して名前空間の結果を指定された引数に設定したいと考えています。

この記事を見てください。彼は私が望んでいることを正確に実行しますが、VB.NET XML Literalsには、ハードコードされた方法よりもはるかに優れた方法があると確信しています。

私は私がこのようにそれを簡単に行うことができることを知っています:

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

.<>しかし、VB.NETに名前空間を含める方法があるかどうか疑問に思っていました。驚くべき言語.@...<>ショートカットです。

4

1 に答える 1

1

私は実際に、要素自体から動的名前空間を取得するより良い解決策を見つけました:

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

XElementには他にもいくつかの名前空間操作メソッドがあるため、名前空間が何であるかを知らなくても、実際に動的にする方が簡単です。

于 2010-09-01T01:58:11.497 に答える