Vielleicht denken viele Leute, dass der aktuelle HTML-Parser ausreicht und selbst einfache reguläre Ausdrücke bereits die Anforderungen der Bearbeitung von HTML-Dokumenten erfüllen können. Ja, die meisten HTML-Dokumente im Internet erfüllen tatsächlich die XHTML-Spezifikationen und für deren Analyse ist kein leistungsstarker Parser erforderlich. Aber ein leistungsstarker Parser ist eine Sache und ein perfekter Parser eine andere.
Jumony Core bietet zunächst eine nahezu perfekte HTML-Parsing-Engine, und ihre Parsing-Ergebnisse kommen denen des Browsers unendlich nahe. Unabhängig davon, ob es sich um Elemente ohne End-Tags, Elemente mit optionalen End-Tags, Tag-Attributen oder CSS-Selektoren und -Stile handelt, werden alle legalen und illegalen HTML-Dokumente vom Browser analysiert, und Jumony analysiert sie in das, was sie sind. Mit anderen Worten, die Ergebnisse der Jumony-Analyse sind dieselben wie die Ergebnisse der Browser-Analyse, sodass Sie sich keine Sorgen mehr darüber machen müssen, ob das HTML-Dokument erkannt werden kann. Wenn der Browser es lesen kann, kann Jumony es verstehen.
Es gibt nur einen Schritt zwischen Perfektion und Leistung, aber ein perfekter Parser ermöglicht es Ihnen, sich nie um das HTML-Quelldokument kümmern zu müssen.
Das Folgende ist eine unvollständige Liste der vom Jumony-Parser unterstützten Funktionen
特性 | 例子 |
孤立的<解析为文本 | < a应当解析为< a |
孤立的>解析为文本 | >应当解析为> |
标记属性(没有值的属性) | |
元素丢失结束标签 | |
可选结束标签元素 "body", "colgroup", "dd", "dt", "head", "html", "li", "option", "p", "tbody", "td", "tfoot", "th", "thead", "tr" |
abc 123 |
无结束标签元素 "area", "base", "basefont", "br", "col", "frame", "hr", "img", "input", "isindex", "link", "meta" , „param“, „wbr“, „bgsound“, „spacer“, „keygen“ |
|
CDataElement | <script>if ( 1<a ) warning( "< p>" );</script> |
"script", "style", "textarea", "title" | |
Vorformatiertes Element | 🎜><span class="font5"></pre> ;</span><span class="font6"></span></span></td></tr><tr>Verwenden Sie einfache Anführungszeichen für Attributwerte <td class="xl67" width="371"><span style="font-family:courier new,courier;font-size:12px;"></span></td>< <td class="xl68" width="371"><span style="font-family:courier new,courier;font-size:12px;"></span></td></tr><tr>Verwenden Sie keine Anführungszeichen für Attributwerte<td class="xl67" width="371"><span style="font-family:courier new,courier;font-size:12px;"></span></td><a href=#></span></span></td> <td class="xl68" width="371"><span style="font-family:courier new,courier;font-size:12px;"> </span></td> </tr> <tr>Attributwert fehlt (aber mit Gleichheitszeichen)<td class="xl67" width="371"><span style="font-family:courier new,courier;font-size:12px;"></span></td><a href=><td class="xl68" width="371"> <span style="font-family:courier new,courier;font-size:12px;"></span> </td> </tr> <tr>Vor dem Attributwert steht ein Leerzeichen<td class="xl67" width="371"><span style="font-family:courier new,courier;font-size:12px;"></span></td><a href= "test.html"><td class="xl68" width="371"><span style="font-family:courier new,courier;font-size:12px;"></span></td> </tr> <tr>Parsen<td class="xl67" width="371">HTML<span style="font-family:courier new,courier;font-size:12px;"></span>Deklaration</td> <td class="xl68" width="371"><span style="font-family:courier new,courier;font-size:12px;"></span></td><!DOCTYPE html></tr> <tr> <td class="xl72" width="371"><span style="font-family:courier new,courier;font-size:12px;"> <span class="font6"><p><br>Es kann nicht nur HTML aus Text analysieren, die API von Jumony kann auch direkt Dokumentanalysen aus dem Internet abrufen und Codierungen basierend auf HTTP-Headern automatisch identifizieren: </p><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:html;toolbar:false;">new JumonyParser().LoadDocument( "www.php.cn/" ).Find( ".post_item a.titlelnk" ) Nach dem Login kopieren Nach dem Login kopieren Und derzeit ist es das einzige von Jumony Das HTML-Parsing des Open-Source-Projekts HtmlAgilityPack wird seit langem nicht mehr aktualisiert. Nach so vielen Jahren gibt es immer noch Probleme beim Parsen der grundlegendsten |
Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung einer perfekten HTML-Parsing-Engine (Jumony). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!