سؤال

ولدي عنصر HTML مثل:

<div id="spam[500]">

وأريد للبحث عن هذا العنصر من الهوية، ولكن يبدو أن nokogiri هو الحصول على الخلط من قبل []. أحاول:

doc.css("#spam[#{eggs.id}]")

ولكن دون جدوى.

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

المحلول

وكريس، حاول هذا واسمحوا لي أن أعرف ما اذا كان يعمل:

doc = Nokogiri::HTML(page)
el = doc.xpath("//div[@id='spam[500]']").first

والمشكلة هي أنه لا يمكن الوصول إليه عن طريق CSS (حتى في المتصفح). محاولة وضع بعض سمات CSS ل "البريد المزعج [500]"، وأنها لن تطبق. يمكنك الوصول إليها عبر كسباث لكن، وكما هو مبين أعلاه.

نصائح أخرى

والمشكلة الحقيقية هنا هي أن الأحرف [و] غير قانونية في سمة معرف HTML4 (أو XML) - نظرة على ما يلي:

http://www.w3.org/TR/html401 /types.html#type-name

و(للتعريف المعياري للهوية ويعزو ننظر www.w3.org//TR/html401/struct/global.html#adef-id)

ويمكنك أيضا أن تفعل ذلك بهذه الطريقة

el = doc.xpath("id(spam[500])").first

ولعناصر وجود ويمكنك الاتصال بهم مباشرة من خلال معرف معرف لأن لها دائما فريدة من نوعها.

لمعرفة مسارات XPath، يرجى إضافة 'المدقق كسباث' البرنامج المساعد لفايرفوكس. أنها تساعد كثيرا وسهلة للغاية

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