سؤال

شيء مثل .//div[@id='foo\d+] لالتقاط علامات div باستخدام id='foo123'.

أنا أستخدم .NET، إذا كان ذلك مهمًا.

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

المحلول

كما لاحظت الإجابات الأخرى ، إكس باث 1.0 لا يدعم التعبيرات العادية.

ومع ذلك، لديك الخيارات التالية:

.//div
   [starts-with(@id, 'foo') 
  and 
   'foo' = translate(@id, '0123456789', '')
  and
   string-length(@id) > 3   
   ]

نصائح أخرى

وكسباث 2.0 لديه بعض الوظائف التي تدعم التعابير العادية: matches()، replace()، tokenize()

في كسباث 1.0 لا يوجد أي دعم رجإكس.

ل. NET يمكنك استخدام محرك XPath في Saxon.Net أن يكون الدعم كسباث 2.0.

وهكذا، إذا كان استخدام محرك كسباث 2.0 في Saxon.NET، مثالك سيحول إلى: .//div[matches(@id,'foo\d+')]

في. NET لديك القدرة على الوصول إلى فئات مخصصة الخاص بك (وبالتالي REGEX إذا كنت تستطيع رمز بشكل مناسب لاحتياجاتك) عن طريق كائنات التمديد.

هنا .

وأردت أيضا أن تفعل هذا حتى خلق بلدي الأساسية كسباث وحدة .

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