web-dev-qa-db-ja.com

HTMLファイル構造を変更するために使用するツール

同じ構造を共有するHTMLファイルがあります。このようなもの:

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

すべてのファイルからtd1テーブルデータを削除する必要があります。どのツールを使用すればよいですか?

3
Jack

JavaScriptとDOMは、Webページ上のアイテムを更新する非常に迅速な方法です。スクリプティングを理解していれば、タイプが緩いので簡単に理解できます。一意の識別子がある場合、または追加する方法がある場合、それは非常に便利です。または、テーブルをフェッチし、行またはセルのいずれかを好みに応じてループし、各要素を削除してアイテムを削除する必要がある証拠を確認してから、DOMツリーからすぐに取り出すことができます。ずっとJavaScript

UPDATE

まず、 this と読む必要があります。停止しないでください! MDNには、HTML、DOM、Javascriptを含む多くの異なる言語のリファレンスなど、多くの素晴らしい情報があります。 「白痴のガイド」の出発点として、 this を確認できますが、その情報は完全ではなく、開発者コミュニティからかなりの信用を失っていることに留意してください。ただし、それでも良い出発点です。

あなたの例を考えると、最初のセルを取り除きたいです。この例のために、テーブルにidがあると推測します。そのため、次のようになります。

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.

確かに、これは非常に単純化されたバージョンです。セルを動的に削除する場合、行を収集し、それらを繰り返し処理して属性(クラス、IDなど)を検索し、それらを削除する必要があります。それに関して助けが必要な場合は、さらに質問を投稿することをお勧めします。

これがお役に立てば幸いです!

1
nodirtyrockstar

実際、StackOverflow question が同様の問題についてありました。最も有用な(そして最も単純な)のは、XSLTを使用してXHTMLを別の形式に変更することです。

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

また、興味深い宝石である HTML Enforcer を見つけました。免責事項:HTML Enforcerは使用していませんので、注意して使用してください。

0
Christopher