كيفية تعيين مساحة اسم XML المحلية؟
-
26-09-2019 - |
سؤال
لدي العديد من مساحات أسماء 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 ، لذلك من الأسهل جعلها ديناميكية حقيقية ، دون حتى الحاجة إلى معرفة مساحات الأسماء.