Maison >interface Web >tutoriel HTML >Explication détaillée d'un moteur d'analyse HTML parfait (Jumony)
Peut-être que beaucoup de gens penseront que l'analyseur HTML actuel est suffisant, et que même de simples expressions régulières peuvent déjà répondre aux besoins de manipulation de documents HTML. Oui, pour la grande majorité des documents HTML sur Internet, en fait, la plupart d'entre eux répondent aux spécifications XHTML, et leur analyse ne nécessite pas un analyseur puissant. Mais un analyseur puissant est une chose, et un analyseur parfait en est une autre.
Jumony Core fournit d'abord un moteur d'analyse HTML presque parfait, et ses résultats d'analyse sont infiniment proches de ceux du navigateur. Qu'il s'agisse d'éléments sans balises de fin, d'éléments avec des balises de fin facultatives, d'attributs de balise ou de sélecteurs et styles CSS, tous les documents HTML légaux et illégaux seront analysés par le navigateur, et Jumony les analysera dans quel qu'il soit. En d'autres termes, les résultats de l'analyse de Jumony sont les mêmes que ceux de l'analyse du navigateur, vous n'avez donc plus à vous soucier de savoir si le document HTML peut être reconnu. Si le navigateur peut le lire, Jumony peut le comprendre.
Il n'y a qu'un pas entre la perfection et la puissance, mais un analyseur parfait vous permet de ne jamais avoir à vous soucier du document source HTML.
Ce qui suit est une liste incomplète des fonctionnalités prises en charge par l'analyseur Jumony
特性 | 例子 | |||||||||||||||||||||||||||||||||||||||||||||||||
孤立的7f19db43d97d2d4008bb10f655c09c49解析为文本 | 3499910bf9dac5ae3c52d5ede7383485>5db79b134e9f6b82c0b36e0489ee08ed应当解析为3499910bf9dac5ae3c52d5ede7383485>5db79b134e9f6b82c0b36e0489ee08ed | |||||||||||||||||||||||||||||||||||||||||||||||||
标记属性(没有值的属性) | f396c7ee6581b8a2c1feb962c201109c | |||||||||||||||||||||||||||||||||||||||||||||||||
元素丢失结束标签 | e388a4556c0f65e1904146cc1a846bee43091600189d2e5d073500b021ca54e8测试链接94b3e26ee717c64999d7867364b1b4a3 | |||||||||||||||||||||||||||||||||||||||||||||||||
可选结束标签元素 "body", "colgroup", "dd", "dt", "head", "html", "li", "option", "p", "tbody", "td", "tfoot", "th", "thead", "tr" |
e388a4556c0f65e1904146cc1a846beeabce388a4556c0f65e1904146cc1a846bee123 | |||||||||||||||||||||||||||||||||||||||||||||||||
无结束标签元素 "area", "base", "basefont", "br", "col", "frame", "hr", "img", "input", "isindex", "link", "meta" , "param", "wbr", "bgsound", "spacer", "keygen" |
4faf7b57895b870867b99beee44351ac | |||||||||||||||||||||||||||||||||||||||||||||||||
CDataÉlément | 3f1c4e4b6b16bbbd69b2ee476dc4f83aif ( 11027f152cc5b3cb62c2e445c3c9a350d" );2cacc6d41bbb37262a98f745aa00fbf0 | |||||||||||||||||||||||||||||||||||||||||||||||||
"script", "style", "textarea", "title" | ||||||||||||||||||||||||||||||||||||||||||||||||||
Élément préformaté | e03b848252eb9375d56be284e690e873 ; | |||||||||||||||||||||||||||||||||||||||||||||||||
3dfcb9713371fca7aa68a061e64798a5 | ||||||||||||||||||||||||||||||||||||||||||||||||||
2de933bd81cf0e954926b4b4a48640c3 | ||||||||||||||||||||||||||||||||||||||||||||||||||
05797ff6bfecf7b84525904378753179 | ||||||||||||||||||||||||||||||||||||||||||||||||||
Déclaration | 8b05045a5be5764f313ed5b9168a17e6 | |||||||||||||||||||||||||||||||||||||||||||||||||
new JumonyParser().LoadDocument( "www.php.cn/" ).Find( ".post_item a.titlelnk" ) Et actuellement, seulement le deuxième HTML de Jumony d'analyse du projet open source HtmlAgilityPack a depuis longtemps cessé de se mettre à jour. Après tant d'années, il y a toujours des problèmes avec l'analyse des éléments ff9c23ada1bcecdd1a0fb5d5a0f18437 2. Prise en charge des paramètres de style CSSLa simple analyse HTML parfaite n'apporte pas beaucoup d'avantages. Comme mentionné ci-dessus, en fait, la plupart des documents HTML peuvent être analysés avec une analyse de second ordre. même de simples expressions régulières, alors pourquoi avons-nous besoin de Jumony ? La réponse est qu'un moteur HTML ne se limite pas à analyser la structure DOM. Considérez ce scénario : je dois définir une valeur aucune pour le style d'affichage d'un élément. Dans le navigateur, nous n'avons besoin que d'un simple element.style.display = "none" pour répondre à nos exigences. Maintenant, nous avons obtenu le DOM dont nous avons besoin via l'analyseur, mais avons-nous encore besoin de concaténer des chaînes pour définir le style ? Pas besoin, Jumony prend en charge l'analyse de style CSS, et même certaines règles d'abréviation de style CSS peuvent être reconnues Dans Jumony, définir un style pour un élément est aussi simple que dans le navigateur : element.Style( "display", "none" )<.>Regardons à nouveau cet exemple : 7cd3a19f7494deb2fc114a1203d0dae994b3e26ee717c64999d7867364b1b4a3, que se passera-t-il si nous définissons padding-left: 0px sur cet élément ? Dans Jumony, le résultat sera : <p style="padding-left: 0px; padding-right: 5px; padding-top:5px; padding-bottom: 5px"></p>Regardez, l'attribut padding est automatiquement développé comme par magie. new JumonyParser().LoadDocument( "www.php.cn/" ).Find( ".post_item a.titlelnk" )Capturer, analyser, sélectionner, en une seule fois. Avec un simple code, nous pouvons sortir les données que nous avons capturées. la console : foreach( var title = new JumonyParser().LoadDocument( "www.php.cn/" ).Find( ".post_item a.titlelnk" ) ) Console.WriteLine( title.InnerText() );Liste des sélecteurs CSS3 supportés par Jumony :
4. Évolutivité puissanteDans Jumony Core 3, il offre aux utilisateurs une évolutivité maximale. Vous pouvez personnaliser les spécifications HTML, implémentez votre propre analyseur, greffez d'autres modèles DOM à l'API Jumony, inventez votre propre pseudo-classe de sélecteur CSS, ou même modifiez votre propre API, comme le style jQuery. Jumony Core a de nombreux projets dérivés, tels que l'exploration de sites Web, la fourniture d'API de style jQuery, le développement de sites Web, la création de fichiers MHT, l'ajout de la prise en charge du sélecteur CSS pour les résultats d'analyse HAP, etc. Ces projets nécessitent tous de bénéficier du puissant évolutivité de Jumony Core, il peut exercer des fonctions puissantes. [Recommandations associées] 1. Tutoriel vidéo HTML en ligne gratuit |
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!