- 締切済み
入れ子になっているhtmlのXPath指定方法
お世話になります。 下記のようにclassが入れ子になっている部分全体を、XPathで指定したいのですが どのように記述すればよいでしょうか? <div class="A"> <div class="B"> <h1> </h1> </div> <div class="C"> <p> </p> </div> </div> XPathについては全く知識がなく調べながらなのですが、なかなか思うようにいきません。 //div[@class="A"]/div[2]/h1/div[3]/p のようにしてみましたが間違っていました。 使用する場所はyahoopipesの XPath fetch pageのモジュールです。 宜しくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- MillenniuM
- ベストアンサー率58% (42/72)
関連するQ&A
- 条件付きで要素を取得したい
条件付きで要素を取得したい 次のようなHTMLで、divのclassが「b」内のh2の要素が「ccc」の場合のdivのクラスが「d」の要素を取得したいのです。 つまり下の例では、「111」と「333」を取得したいです。 queryにどのように記述すれば良いのでしょうか? $document =<<<EOF <div class=a> <div class=b> <h2 class=c>ccc</h2> <div class=d>111</div> </div> <div class=b> <h2 class=c>ccc[a]</h2> <div class=d>222</div> </div> <div class=b> <h2 class=c>ccc</h2> <div class=d>333</div> </div> </div> EOF; $xpath = new DOMXPath($document); $xpath->query('ここの記述が知りたい');
- ベストアンサー
- PHP
- テキストがaタグの外にある場合のCSS指定方法
noteというサービスに公開されている記事について、 既に読んだ記事が分かるように既リンクの色を変えたい(a:visited) と思っています。(現状はリンクを踏んでも変わりません。) stylusというCSSのChromeアドオンを使って実現しようとしています。 HTMLの構成を見てみると下記のように、 タイトルと本文がaタグの外にいる状態なのですが、 このような構成で既リンクのタイトル(もしくは本文)の文字色を 変えたい場合はどのようなCSSを記述したら良いでしょうか。 分かる方居られましたら宜しくお願いいたします。 既読が分かるようになれば、stylusを使う以外の方法でも結構なので、 何かやり方知っている方居られたらご教授お願いいたします。 <div> <a class="link"></a> <div></div> <div> <div> ::before <div></div> <h3 class="title">タイトル</h3> <p class="main">本文</p> <div></div> ::after </div> </div> </div>
- ベストアンサー
- CSS
- children div指定
こんにちは、 下記のjquetyで自分の下にいる <div class="exp">の'background-image'を表示したいのですが、 うまく指定できません。 'div.exp'をどのように記述すればよいでしょうか? $('#T1').click(function(e) { exp = $(this).children('div.exp').css('background-image'); alert(exp); } html----------------------- <div id="T1"> <h2 class="Title"></h2> <div class="exp"></div> </div>
- 締切済み
- JavaScript
- JQuery深い階層を指定するセレクタ
$('#id1 .class1 .class2')の様な感じでid1の中にあるclass1の中のclass2のように指定することは可能でしょう? 例えば、以下の様な入れ子の階層になっていた時です。 <div id='id1'> <div> <div class='class1'> <div class='class2'>ここです</div> </div> </div> </div>
- ベストアンサー
- JavaScript
- DIVの入れ子で、FireFoxだとレイアウトが崩れる。
DIVの入れ子で、FireFoxだとレイアウトが崩れる。 http://www.cool-vivi.com/?p=222 このサイトの通りにやったのですが、 FireFoxだとうまく表示されません。 下記のソースから<div id="main">を消して、入れ子じゃない状態にするとうまくいきます。 どうすればいいでしょうか? <div id="main"> <div id="menu"> </div> <div id="contents"> </div> </div>
- ベストアンサー
- ホームページ作成ソフト
- タグを切り替えるJavaScriptについて
下記のurlを参考にして、タグを切り替えるJavaScriptを使いレイアウトをしています。 http://archiva.jp/web/javascript/tab-menu.html やりたいことは各内容をIDセレクタでくくりたいのです。 <div id="page1"> <h2>page1</h2> <p>パンクズ</p> <div class="nav"> <ul id="tab"> <li><a href="#page1"><span>page1を選択中</span></a></li> <li><a href="#page2"><span>page2</span></a></li> <li><a href="#page3"><span>pave3</span></a></li> </ul> </div> <p>段落1</p> </div> <div id="page2"> <h2>page2</h2> <p>パンクズ</p> <div class="nav"> <ul id="tab2"> <li><a href="#page1"><span>page1</span></a></li> <li><a href="#page2"><span>page2を選択中</span></a></li> <li><a href="#page3"><span>pave3</span></a></li> </ul> </div> <p>段落1</p> </div> ...page3 このようにやりたいのですが、JavaScriptがIDセレクタの"tab"にしか対応していないため、他のページにいくとクリックが効かなくなってしまいます。 idセレクタをclassセレクタに設定し直してもidセレクタにしか対応していないため効きません。 tag2とtab3に対応させるためにはどのようにすればいいでしょうか。 よろしくお願いします。
- ベストアンサー
- JavaScript
- classの属性の値がない場合の取得について
次のようなHTMLで、divのclassが「a」内のdivのclassがない場合の要素(つまり下の例では、「ccc」)を 取得したいと思って、「class=''」を記述したのですが、これはマッチしませんでした・・・ かといって「//div[@class='a']」だけだと「<div class=b>」にもマッチしてしまいます。 この場合はどのような記述になるのでしょうか?_ $document =<<<EOF <div class=a><div class=b>bbb</div><div>ccc</div></div> EOF; $doc = DOMDocument::loadHTML($document); $xpath = new DOMXPath($doc); $items = $xpath->query("//div[@class='a']/div[@class='']"); foreach ($items as $item) { $arr[] = $item->nodeValue; } print_r($arr);
- ベストアンサー
- PHP
- CSS classの場合とidの場合の指定方法
h1などをブロック要素ごとに、違うスタイルを適用させたく、下記のように、記述したのですが、ブロック要素をidで指定する場合は同じように、#mainと#main h1で指定し、<div id="main">とすればよいのでしょうか? それとも、h1は.main h1 とクラス指定して、<div id="main" class="main">とした方がよいのでしょうか?変な質問かもしれませんが、どちらも同じように表示するので、どちらがよいのか分かりません. <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <style type="text/css" media="screen"><!-- .main { width:100px;} .main h1 { color:red;} --></style> </head> <body> <div class="main"> <h1>aaa</h1> </div> </body> </html>
- ベストアンサー
- HTML
- CSSのクラス指定について
CSSのクラス指定で質問させていただきます。 下記の条件で「a-クラスのついたDIV」の中で、 なおかつ一番初めに表示される[a-]の背景色だけ「赤色」にする方法を教えてください。 「a-1」「a-2」「a-3」はそれぞれ時間によって消えたりし、[x]が挿入されたりします。 以上のように条件が変わっても、常にclass=「a-」のついた一番上のDIVの背景は赤色になります。 HTML------------------- <div class="wrapper"> <div class="x"></div> <div class="a-1"></div> <div class="a-2"></div> <div class="a-3"></div> </div> css----------------------- [class^="a-"]{}; nth-of-typeを使って指定できると思うのですが、いまいちうまくできません>< ぞうぞよろしくお願いします。
- ベストアンサー
- CSS
- divで囲まれたpaddingの指定を特定のタグだけ解除(margin:0px)する方法
タイトルに上手く書けなかったのですが、divでpaddingを指定して余白を作っています。 そもそもはmargin leftでまかないたかったのですが、ほとんどはfloat指定しているため、IE6で倍に広がりなくなくpadding指定しています。 ただ、中身のテキストや画像はいいのですが、タイトルにあたり<h2>タグだけをどうしても左はしに寄せたいと悪戦苦闘しています。 なんとかいい方法はないものでしょうか? <div class="center-box2"> <h2>あああ</h2> <p id="top-text">いいい</p></p> <h3 class="caution-title1">あああ</h3> <img src="img/aaa.jpg" width="145" height="105" class="caution-img"> <p>いいい</p> </div> <h2>にはCSSで背景画像を使用し、テキストはindentで-9999を指定しています。 <h3>や<img>のpaddingの余白は指定のままで、タイトルの<h3>だけを何とかしたいと考えています。 どうかよろしくお願致します。
- ベストアンサー
- HTML
お礼
早速の回答ありがとうございます。 試してみたのですが、<p></p>の中に<br>が含まれているせいでしょうか、<p>内全てを拾えませんでした… できればBとCを一つの結果として出したいのですが、Bの結果、Cの結果、というように別々に出てきてしいました。