هل يمكنني استخدام حزمة HTML Agility لتحليل جزء HTML؟

StackOverflow https://stackoverflow.com/questions/2535878

  •  22-09-2019
  •  | 
  •  

سؤال

هل يمكن استخدام حزمة خفة الحركة HTML لتحليل جزء سلسلة HTML؟

مثل:

var fragment = "<b>Some code </b>";

ثم استخراج الكل <b> العلامات؟ جميع الأمثلة التي رأيتها حتى الآن تم تحميلها مثل مستندات HTML.

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

المحلول

إذا كان HTML ثم نعم.

string str = "<b>Some code</b>";
// not sure if needed
string html = string.Format("<html><head></head><body>{0}</body></html>", str);
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);

// look xpath tutorials for how to select elements
// select 1st <b> element
HtmlNode bNode = doc.DocumentNode.SelectSingleNode("b[1]");
string boldText = bNode.InnerText;

نصائح أخرى

لا أعتقد أن هذا هو حقًا أفضل استخدام لـ HTMLAGILITYPACK.

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

لدى Roy Osherove منشور مدونة تصف كيف يمكنك تجريد جميع HTML من مقتطف:

حتى لو حصلت على XPath الصحيح مع عينة Mika Kolari ، فإن هذا لن يعمل إلا لقتم مع u003Cb>علامة فيه وسوف يكسر إذا تغير الكود.u003C/b>

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