سؤال

لدي العديد من مساحات أسماء XML التي تعرض نفس المخطط.

أرغب في استخدام وظيفة تقبل مساحة الاسم بشكل ديناميكي وتطبيق السمات أو الخصائص وفقًا لمساحة الاسم المحددة:

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

أريد بالفعل ضبط نطاق مساحة الاسم مع هذه الوظيفة على الوسيطة المحددة.

ينظر الى هذه مقالة - سلعة، يفعل بالضبط ما أريد, ، لكنني متأكد من أنه في حرفية VB.NET XML هناك طريقة أجمل بكثير من القيام بذلك بالطريقة المتشددين.

أعلم أنه يمكنني ببساطة فعل ذلك مثل هذا:

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

لكنني كنت أتساءل عما إذا كانت هناك طريقة لتضمين مساحات الأسماء في vb.net مذهلة .<>, .@, ...<> اختصارات اللغة.

هل كانت مفيدة؟

المحلول

لقد وجدت في الواقع حلًا أفضل له مساحة الاسم الديناميكية التي يتم استردادها من العنصر نفسه:

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

هناك أيضًا عدد قليل من أساليب المساحة الأخرى التي تتم معالجة الأسماء في XElement ، لذلك من الأسهل جعلها ديناميكية حقيقية ، دون حتى الحاجة إلى معرفة مساحات الأسماء.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top