web-dev-qa-db-fra.com

Quel outil utiliser pour modifier la structure du fichier HTML

J'ai des fichiers HTML partageant tous la même structure. Quelque chose comme ça:

Body
    Table
         tr1
             ... (more nested tables)
         tr2
             ... (more nested tables)
         tr3
             td1
             ... (more nested tables)
             td2
          tr4 ...

Je dois supprimer les données de la table td1 de tous les fichiers. Quel outil devrais-je utiliser?

3
Jack

JavaScript et le DOM sont des moyens très rapides de mettre à jour tous les éléments d’une page Web. Si vous comprenez les scripts, il est assez facile à comprendre car il est tapé de manière vague. S'il existe un identifiant unique ou si vous avez la possibilité de l'ajouter, c'est très utile. Vous pouvez également récupérer le tableau, parcourir les lignes ou les cellules, selon votre préférence, en vérifiant chaque élément pour vous assurer que l'élément doit être supprimé, puis vous pouvez le retirer directement de l'arborescence DOM. JavaScript jusqu'au bout!

UPDATE

Tout d’abord, vous devriez lire this . Ne t'arrête pas là! MDN contient de nombreuses informations utiles, notamment des références dans de nombreux langages, notamment HTML, le DOM et Javascript. Pour un point de départ du "Guide de l'idiot", vous pouvez vérifier this , mais vous devez garder à l'esprit que leurs informations ne sont pas parfaites et qu'ils reçoivent un discrédit assez important de la part de la communauté de développeurs. Cependant, c'est quand même un bon point de départ.

Compte tenu de votre exemple, vous souhaitez vous débarrasser de la première cellule. Je vais deviner, pour cet exemple, que votre table aura un identifiant. Donc, cela ressemblerait à quelque chose comme ça:

var table = document.getElementById('tableID'); //There are other ways to fetch HTML elements, but this is the most direct. It returns a table object.
var rows = table.rows; //Create a variable to store the table rows.
row1 = rows[0]; //Stores the first row in a variable.
row1.deleteCell(0); //Delete the first cell in the first row.

Certes, il s’agit d’une version très simplifiée. Si vous supprimez des cellules de manière dynamique, vous devrez probablement collecter des lignes et les parcourir à la recherche d'attributs: classes, ID, etc., puis les supprimer. Si vous avez besoin d'aide pour cela, je vous recommande de poser plus de questions.

J'espère que ça aide!

1
nodirtyrockstar

En fait, il y avait un StackOverflow question à propos d'un problème similaire; le plus utile (et aussi le moins compliqué) inclut l’utilisation de XSLT pour modifier votre XHTML dans un autre format.

http://help.hannonhill.com/discussions/how-do-i/269-strip-specific-html-tag-in-xslt

J'ai aussi trouvé un joyau intéressant, le HTML Enforcer . AVERTISSEMENT: Je n'ai pas utilisé HTML Enforcer, utilisez-le avec prudence.

0
Christopher