سؤال

كيف أقوم بإصلاح HTML المشوه باستخدام C#؟ ستكون الإجابة العظيمة هي عينة حزمة خفة الحركة HTML!


أنا أجعل موقعًا (للاستخدام الشرعي). HTML في الموقع على ما يرام ولكن هناك بعض المشاكل المزعجة.

إحدى الطرق التي يمكن أن أذهب بها من خلال التعبيرات العادية. لقد استخدمت Web Expression لتحليل المشكلات والتعبيرات العادية اللازمة لتصحيحها. لذلك تتمثل إحدى الطرق في استخدام أداة مثل regexbuddy لإنشاء رمز C# لهذه التعبيرات العادية.

ومع ذلك ، فإن الأداة الموصى بها لمعالجة HTML المشوه في C# هي HTML ATCILITY PACK (HAP). علاوة على ذلك ، لقد قمت بتحليل عدد قليل من الصفحات فقط وأخشى أن تحتوي الصفحات المستقبلية على أنماط لم أحلها بعد ، وأكره إدخال "العثور على الأخطاء في الصفحات القليلة القادمة وتصحيحها" اعمال. لذلك ، إذا كان لدى HAP بالفعل حل قوي يعمل ، فسيكون هذا رائعًا. تكمن المشكلة في أنه باستثناء بعض الإشارات هنا في ، لذلك لم أتمكن من العثور على أي وثائق إرشادية لهذه الأداة ، باستثناء ملف تعليمات API للكائن.

لذلك - قبل أن أنفق $ وأعرب عن التعلم على regexbuddy (لا يوجد إصدار تقييم مجاني) ، أو كسر أسناني على وثائق واجهة برمجة تطبيقات HAP - هل هناك طريقة سهلة للقيام بذلك؟ سوف تساعد عينة HAP ... :-)

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

المحلول 2

ما أخذته من الإجابات هنا: 1) إذا كنت تقوم بتجشير موقع ويب لا تتحكم فيه ، فستدخل دائمًا وضع صيانة حيث يتعين عليك إصلاح مكشطةك في كل مرة يقوم فيها تخطيط الصفحة التي تقوم بتغييرها . 2) إذا كنت تقتصر على هذا الموقع المعروف ، فلماذا لا تكتب مكشطةك لضبط المشكلات

لذلك ، إذا اضطررت إلى الذهاب إلى وضع الصيانة ، فيجب أن يكون الأمر سهلاً قدر الإمكان. لذلك ، عملي على النحو التالي:

  1. أنا أستعمل Webius's swexplorerautomation للكشف عن المشاهد في صفحات الويب. الفكرة هي أن المشهد عبارة عن مجموعة من الشروط التي تحددها لـ IE. عند تحميل صفحة ويب ، تحاول أي مجموعة من الشروط الوفاء (على سبيل المثال - عنوان الصفحة هو "تسجيل الدخول إلى الحساب" ، تحتوي الصفحة على مربع نص "تسجيل الدخول" A "كلمة مرور"). إذا تم اكتشاف مجموعة من الشروط المقابلة لمشهد ما ، أي تقارير تم اكتشاف المشهد. يوفر هذا النموذج طبقة تجريبية - يمكن أن تترجم بعض التغييرات في صفحة الويب إلى التغييرات في ملف المشهد ، مع حفظ الكود من الحاجة إلى التغيير. بالإضافة إلى ذلك ، هذا يحميني من نموذج IE الذي يحركه الحدث: أدعو "المشهد". أقوم بتقييم هذا المنتج ولكني لست متأكدًا بعد أنني سأستخدمه ، وذلك أساسًا لأن الوثائق فظيعة. بديل آخر هو واتين, ، وسبب آخر لم أشتري SWEA بعد هذه المقالة اتهم مؤلفها الرسائل غير المرغوب فيه ضد واتين.
  2. بمجرد الحصول على صفحة الويب ، أستخدم Web Expression لتشغيل عمليات فحص التوافق وتحديد الأخطاء.
  3. أنا أستعمل regexmagic لإزالة الأخطاء وتصحيحها. أنا حقا أحب هذه الأداة. من المؤكد أنه في بعض الأحيان يجعلك غاضبًا بشكل قاتل لأنه لا يتيح لك القيام بأشياء يجب أن تكون سهلة حقًا ، لكنها أداة حلوة ولطيفة ، والوثائق مذهلة.
  4. أخيرًا ، بعد كل الأخطاء التي أعرفها ، أستخدم حزمة HTML Atgility لتحويلها إلى XHTML - عبور TS و DOT IS ، إذا جاز التعبير: كل الحالات السفلية ، ونقلت عبر السمات ، وما إلى ذلك.

أتمنى أن يساعدك هذا!

أفي

نصائح أخرى

هل يمكن أن تخبرني ما نوع المشاكل المزعجة التي تواجهها؟
لكنك لست بحاجة إلى استخدام Regex لتنظيف HTML ، سيتيح لك HAP الوصول إلى Elemtents من HTML المشوه باستخدام استعلامات XPath.
وبشكل أساسي تحتاج إلى تعلم XPath لمعرفة كيفية الحصول على عناصر HTML التي تريدها.
يعتمد الأمر حقًا على نوع HTML الذي تقوم بتحليله باستخدام HAP.
ولكن هناك عدة طرق للحصول على العناصر.
مثل المعرف أو الفئة أو حتى يمكنك الحصول على العنصر الذي يتبع عنصرًا آخر يحتوي على نص معين مثل "الاسم:" على سبيل المثال.
يمكنك الذهاب إلى W3 Schools XPath Tutorial للحصول على برنامج تعليمي لطيف XPATH

لا يمكن استخدام Regex لتنظيف HTML. يفعل http://tidy.sourceforge.net/ يساعد؟

إذا كنت تقوم بتجشير موقع ويب لا تتحكم فيه ، فستدخل دائمًا وضع صيانة حيث يتعين عليك إصلاح مكشطةك في كل مرة يقوم فيها تخطيط الصفحة التي تقوم بتغيير التغييرات. لا يهم إذا كنت تستخدم regexu003Ctd color="red"> d+u003C/td> للحصول على الرقم الأحمر الكبير من صفحة أو إذا كنت تستخدم محلل DOM للحصول على الخلية الثالثة في الصف الثاني في الجدول مع أرقام معرف للحصول على نفس الشيء. يكسر Regex إذا استبدل مشرف الموقع سمة اللون بسمة فئة. ينهار DOM Parser إذا أضاف مشرف المواقع صفًا آخر إلى أعلى الجدول.

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

نظرًا لأنك تستخدم حزمة HTML Agility ومعرفة المشكلات التي تحدث ، إذا كنت تقتصر على هذا الموقع المعروف ، فلماذا لا تكتب مكشطةك لضبط المشكلات عند تحميل HTMLDOCUMITY.

IE: إذا كنت تعرف أن العنصر يظهر دائمًا بعد ذلك ، أدخل العنصر في وضع الطفل الأول للعلامة .....

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