سؤال

أقوم بوضع بعض محتويات الصفحة (التي تم تشغيلها من خلال Tidy، ولكن ليس من الضروري أن يتم تشغيلها إذا كان هذا مصدرًا للمشاكل) في DOMDocument استخدام DOMDocument::loadHTML.

إنه يأتي بأخطاء مختلفة:

المعرف x محدد بالفعل في الكيان، السطر X

هل هناك أي طريقة لجعل سواء DOMDocument (أو Tidy) يتجاهل معرفات العناصر المكررة أو يزيلها، لذلك سيؤدي بالفعل إلى إنشاء ملف DOMDocument?

شكرًا.:)

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

المحلول

يكشف البحث السريع عن هذا الموضوع عن تقرير الخطأ (غير الصحيح):

http://bugs.php.net/bug.php?id=46136

الرد الأخير ينص على ما يلي:

أنت تستخدم قواعد HTML 4 لتحميل مستند XHTML.إما استخدام طريقة load () لتحليلها كـ XML أو وظيفة libxml_use_internal_errors () لتجاهل التحذيرات.

لا يمكنني التأكد مما إذا كنت تواجه هذه المشكلة للأسباب نفسها، نظرًا لأنك لم تقم بتضمين إشارة إلى صفحة HTML التي يتم تحميلها.في أي حال، باستخدام libxml_use_internal_errors() ينبغي على الأقل كبح الخطأ.

المعرفات الموجودة في مستندات HTML هي فريدة بشكل عام, ، لذلك أفضل حل سيظل يتم التحقق من صحة المستند الخاص بك، إذا كان ذلك ممكنًا.

نصائح أخرى

وبحكم التعريف، معرفات فريدة من نوعها. إذا لم تكن كذلك، يجب عليك استخدام الطبقات بدلا من ذلك (ولا أسماء، حيث ينطبق).
أشك في أنك تستطيع أن تجبر أدوات XML تجاهل معرفات مكررة، من شأنها أن تجعل لهم التعامل مع وثيقة XML غير صالحة.

واستخدام الاستثناءات لعلاج معرفات مكررة، وإعادة تسمية هوية الثاني. أو ربما، والجمع بين العناصر في عناصر فرعية من نفس الأم مع ID.

ومعرفات فريدة في ملف XML (في rootElement من XMLTREE)

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