8
votes

Trouver des commentaires dans HTML

J'ai un fichier HTML et l'intérieur, il peut y avoir JavaScript, PHP et tout ce type que les gens peuvent ne pas mettre dans leur fichier HTML.

Je veux extraire tous les commentaires de ce fichier HTML.

Je peux souligner deux problèmes pour ce faire:

  1. Qu'est-ce qu'un commentaire dans une langue peut ne pas être un commentaire dans un autre.

  2. en JavaScript, le reste des lignes est commenté à l'aide du marqueur // . Mais les URL contiennent également // en eux et je peux donc bien éliminer les parties d'URL si je juste appliquer substituer // , puis le reste de la ligne, avec rien.

    Ce n'est donc pas un problème trivial.

    y a-t-il une solution pour cela déjà disponible?

    Quelqu'un a-t-il déjà fait cela?


8 commentaires

Vous avez raison que ce n'est pas trivial. Afin de supprimer de manière fiable les commentaires, vous devez analyser complètement le fichier (PHP, HTML et JavaScript). Je suggère de travailler dans PHP si possible; Bien que j'aime mieux Perl, les outils de PHP pour travailler sur lui-même sont meilleurs que les outils PERL pour travailler sur PHP. Voici quelque chose pour vous aider à démarrer: Stackoverflow.com/Questtions/503871/... . Ensuite, il vous suffit de trouver des analyseurs HTML et JavaScript dans PHP pour faire de même pour ces portions du fichier.


Pourquoi auriez-vous PHP dans votre fichier HTML? Je vous venez d'avoir CSS, JavaScript et HTML, puis Google "HTML Minifier" pour les produits qui peuvent supprimer les commentaires, les espaces et généralement "Slim Down".


@RB, le HTML à analyser peut à un moment donné, pas même être à moi.


Votre point n ° 2 est précisément pourquoi j'utilise toujours /// dans mes commentaires - juste un point aléatoire, mais je suis tombé sur ce problème avant et cela a changé mes habitudes de commentaire pour toujours;) Quelles sont vos raisons pour avoir besoin de cette capacité? et par "extrait", voulez-vous garder des commentaires ou les jeter?


Eh bien, j'ai l'intention de les jeter, mais de ne pas être liés avec eux avec eux seraient une solution plus modulaire.


Que voulez-vous dire par extraire? Voulez-vous utiliser ces commentaires ou voulez-vous supprimer ces commentaires?


Les extraits bien peuvent être sous la forme de par exemple obtenir leur emplacement dans le fichier. Je recevrais donc une liste d'index indiquant que les commentaires commencent et se terminent. Comme je l'ai déjà dit, mon intention cette fois-ci est de les jeter.


Je ne peux pas réclamer le crédit pour ce gist, mais quelque chose comme ça pourrait vous faire passer dans la bonne direction: Gist.github .COM / 3837258


4 Réponses :


0
votes

Il semble de votre mot que vous réfléchissez à une approche basée sur des expressions régulières: c'est une douleur à le faire dans l'ensemble du fichier, essayez d'utiliser certains outils pour mettre en évidence ou pour supprimer un texte intéressant ou inintégrer, puis travailler sur quoi est laissé de votre tamis en fonction des critères de conservation / défausse. Jetez un coup d'œil à HTML :: Tree et TreeBuilder, il pourrait être très utile de faire face au balisage HTML.


0 commentaires

2
votes

Problème 2: Chaque URL n'est-elle pas citée, avec "www.url.com" ou "www.url.com", lorsque vous l'avez écrit dans l'une ou l'autre langue? Je ne suis pas sûr. Si tel est le cas, tout ce que vous avez à faire est d'analyser le code et de vérifier s'il y a des marques de devis précédant les backslashes pour savoir s'il s'agit d'une URL réelle ou d'un commentaire.


3 commentaires

Vous avez donc résolu le problème? Sinon (peut-être que je n'ai pas compris votre question), quel est le problème? :)


Les URL ne sont pas cotées de manière fiable. est un contre-exemple.