• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:HTMLの取得と解析について)

HTMLの取得と解析について

このQ&Aのポイント
  • フォームのtextareaにHTMLを入力して、必要なタグを取得する方法についての質問です。
  • テキストエリアの値からgetElementsByTagNameを使用してtableタグを取得しようとしていますが、エラーが出ています。
  • パースして再利用する良い方法があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • e_watt
  • ベストアンサー率71% (25/35)
回答No.2

textareaの内容を、ダミーの要素に突っ込めば DOM ツリーの中に入りますね。 (下の例では createElemetしましたが、<div id="scratchPad" style="display:none">  などの要素を予め用意してもok) function test() { var buf = document.createElement('div'); // ダミーの要素を生成して buf.innerHTML = document.form1.src.value; // 貼りつけた内容を突っ込む elm = buf.getElementsByTagName('table')[0]; // (注:[0]で最初のTABLEだけを拾ってます) dv = document.getElementById('test'); // ここに結果を入れる…のだけど if (window.navigator.userAgent.toLowerCase().match("firefox")) { dv.removeChild(dv.childNodes[0]); // どんどん増えるとまずいのでremoveChildしておく dv.appendChild(elm); // 子要素として追加 }else{ dv.innerHTML = elm.outerHTML; // 貼り付け } } /*  上記 if A else B について、   Firefox 8.0 では A のみ成功   IE 8.0 では B のみ成功   Google Chrome 15.0, Opera 11.52 は A, B ともに成功 */

googleoooo
質問者

お礼

回答有難うございます。 DOMツリー化できるんですね!!! やってみると、私の方でも取得できました。 本当にありがとうございました。

その他の回答 (1)

  • t_ohta
  • ベストアンサー率38% (5253/13738)
回答No.1

getElementsByTagNameはDOMツリーの中から指定されたタグを探し出すファンクションです。 org_src の中身はテキストデータであって、ドキュメントオブジェクトでは無いのでgetElementsByTagNameは使えません。 org_src の中身から正規表現などを使ってtableタグを抽出する必要があります。

googleoooo
質問者

お礼

回答有難うございます。 正規表現を使わないとダメなんですね。 DOMツリー化する方法があれば楽なんですが、とりあえず正規表現で頑張ってみます

関連するQ&A

専門家に質問してみよう