人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

コメント部を利用したXPathの指定方法について教えてください。

<div class="date">
<!--// date1 //-->2011年11月15日00時17分<!--// date2 //-->
</div>
というHTMLの一部があった場合、この日付を取得するにはどのように指定すればいいのでしょうか?
<div>のclassはページによって異なってしまっている場合もあるので、このコメント部がキーとなるので、date1等を使って指定したいのですが。
[contains()]等を使って試してみたのですがダメでした。

●質問者: yujinTODO
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● TransFreeBSD

こんな感じ?
http://jsfiddle.net/e8UF7/
comment()は*にはマッチしないのと、複数マッチしたときが良くわからない。

//div[contains(child::comment(),'date3')]

これで行けそうに思うけどダメだった。なんでだろう。


2 ● Cherenkov

TransFreeBSDさんの回答を参考にしながら、
http://jsfiddle.net/cherenkov/eamJJ/

<html>
<head>
<meta charset="UTF-8">
<script>
onload = function() {
var date1 = document.evaluate('//text()[preceding-sibling::comment()[contains(., "date1")]]', document, null, XPathResult.STRING_TYPE, null).stringValue;
alert(date1)
var date3 = document.evaluate('//text()[preceding-sibling::comment()[contains(., "date3")]]', document, null, XPathResult.STRING_TYPE, null).stringValue;
alert(date3)
};
</script>
</head>
<body>
<div class="date">
<!--// date1 //--> 1-2 <!--// date2 //-->
<!--// date3 //--> 3-4 <!--// date4 //-->
</div>
</body>
</html>


参考:
あるテキストを含むコメントノードを取得するXPath - FFFF - 0x

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ