<div class="date">
<!--// date1 //-->2011年11月15日00時17分<!--// date2 //-->
</div>
というHTMLの一部があった場合、この日付を取得するにはどのように指定すればいいのでしょうか?
<div>のclassはページによって異なってしまっている場合もあるので、このコメント部がキーとなるので、date1等を使って指定したいのですが。
[contains()]等を使って試してみたのですがダメでした。
こんな感じ?
http://jsfiddle.net/e8UF7/
comment()は*にはマッチしないのと、複数マッチしたときが良くわからない。
//div[contains(child::comment(),'date3')]
これで行けそうに思うけどダメだった。なんでだろう。
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>
コメント(0件)