سؤال

أنا أستخدم jQuery لتحليل موجز RSS. داخل كل <item> هو عنصر الأسماء مثل <content:encoded> اريد الاختيار. كيف يمكنني اختياره في jQuery؟

$(xml).find('item') works but $(xml).find('item content') does not.
هل كانت مفيدة؟

المحلول

هل تقوم بتحميل XML عبر Ajax؟ بعد ذلك ، تأكد من أن الخادم يقوم بتعيين نوع المحتوى على أنه "نص/XML" وليس "Text/HTML".

تأكد أيضًا من أن اسم علامة العنصر الذي تريده هو بالفعل محتوى وليس شيئًا آخر (مثل المحتوى: مشفر). في هذه الحالة ، حاول:

.find('item content\\:encoded')?

شخصيات خاصة مثل: تحتاج إلى الهروب في محددات jQuery.

نصائح أخرى

أدرك أن هذا الموضوع قديم إلى حد ما ، لكنه أول ما يظهر في Google عند البحث عن هذا مع jQuery. أسهل طريقة للقيام بالبحث هي مع:

.find('[nodeName="content:encoded"]')

أتمنى أن يساعد ذلك شخص ما. قضيت الساعات القليلة الماضية في محاولة لمعرفة طريقة بسيطة للوصول إلى تلك العلامات.

.find('[nodeName="content:encoded"]') إنه يعمل بشكل جيد في الكروم وبعض المتصفحات القديمة.

هذا ما حصلت عليه من البحث

لا يدرك محددات jQuery مساحة المساحة ، لذا فهي تستخدم فقط getElementsByTagName (بدلاً من getElementsByTagnamens) لاسترداد العناصر من خلال سمة اسمها (بدلاً من الاسم المحلي ومساحة الاسم).

يبدو أنك بحاجة إلى القيام بذلك في JS العادية باستخدام document.getElementsByTagNameNS(namespace, tagname)

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