<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>岐阜20年目ノート &#187; JavaScript</title>
	<atom:link href="http://blog.gifumaster.com/archives/tag/javascript/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.gifumaster.com</link>
	<description>1983年生まれPG</description>
	<lastBuildDate>Thu, 10 Nov 2011 09:33:07 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.gifumaster.com/archives/tag/javascript/feed" />
		<item>
		<title>XPath で&lt;li&gt;&lt;b&gt;hoge&lt;/b&gt;ぼえ&lt;/li&gt;で、「ぼえ」だけを取り出す方法</title>
		<link>http://blog.gifumaster.com/archives/511</link>
		<comments>http://blog.gifumaster.com/archives/511#comments</comments>
		<pubDate>Tue, 17 Feb 2009 09:07:13 +0000</pubDate>
		<dc:creator>gifu</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[調査]]></category>
		<category><![CDATA[greasemonkey]]></category>
		<category><![CDATA[XPath]]></category>

		<guid isPermaLink="false">http://blog.gifumaster.com/?p=511</guid>
		<description><![CDATA[アマゾンの発売日前レビューってのがあまり好きじゃないんですよね。 発売日前のレビューは非表示にできるようにgreasemonkey（初体験)を書いてみようと思い、 とりあえずお知り合いのここを参照して調べる。 まずはアドオンでXpathCheckerをインストール。 ここでXPathつかったのはアマゾンのhtmlがひどかったから。web1.0っていうの？アレ。 &#60;font size=&#8221;-2&#8243;&#62;とか懐かしくて涙出てきた。 発売日を取得しようとしたんだけど、アマゾンでは発売日付近のhtmlは以下のようになってる。 &#60;ul&#62; &#60;li&#62;&#60;b&#62;なんか：&#60;/b&#62;ああああ&#60;/li&#62; &#60;li&#62;&#60;b&#62;なんか：&#60;/b&#62;いいいい&#60;/li&#62; &#60;li&#62;&#60;b&#62;発売日：&#60;/b&#62;YYYY-mm-dd&#60;/li&#62; &#60;li&#62;&#60;b&#62;なんか：&#60;/b&#62;うううう&#60;/li&#62; &#60;/ul&#62; こんなかんじ。発売日の順番が商品によって違うので、 Xpathは /html/body/table[1]/tbody/tr/td/div/ul[1]/li でリストを配列で取得して走査。 ただこの状態だと &#60;b&#62;発売日：&#60;/b&#62;YYYY-mm-dd　を取ってきてしまう。 YYYY-mm-dd部分のだけ取る方法ねーかなー正規表現で抜くかなーと悩んでたら こんな感じでとれるよーとotchyさんに教えてもらた。 /html/body/table[1]/tbody/tr/td/div/ul[1]/li/child::node()[2] child::node()はnode()でもおｋ lists = $a(&#8220;/html/body/table[1]/tbody/tr/td/div/ul[1]/li/node()[2]&#8220;); for(var i in lists){ var t = Date.parse(lists[i].nodeValue); if(!isNaN(t)){ releaseDate = t; } } node()[1]で前の部分が取れる。 最初テキストinnerHTMLで取ろうとしたら取れなかった…。(おそらくXMLだから?よくわからんけど。) nodeNameをみたら#textだったのでnodeValueにしたら取れた。 $a はここの使ってる なるほどねー。XPath初めて使ったけどコレは便利。 今回は習作として、今後ちょっといろいろ作ってみようと思った次第でした。]]></description>
			<content:encoded><![CDATA[<p>アマゾンの発売日前レビューってのがあまり好きじゃないんですよね。<br />
発売日前のレビューは非表示にできるようにgreasemonkey（初体験)を書いてみようと思い、<br />
とりあえずお知り合いのここを<a href="http://www.otchy.net/20090120/first-five-lines-of-greasemonkey/">参照</a>して調べる。</p>
<p>まずはアドオンでXpathCheckerをインストール。<br />
ここでXPathつかったのはアマゾンのhtmlがひどかったから。web1.0っていうの？アレ。<br />
&lt;font size=&#8221;-2&#8243;&gt;とか懐かしくて涙出てきた。</p>
<p>発売日を取得しようとしたんだけど、アマゾンでは発売日付近のhtmlは以下のようになってる。</p>
<blockquote><p>&lt;ul&gt;<br />
&lt;li&gt;&lt;b&gt;なんか：&lt;/b&gt;ああああ&lt;/li&gt;<br />
&lt;li&gt;&lt;b&gt;なんか：&lt;/b&gt;いいいい&lt;/li&gt;<br />
&lt;li&gt;&lt;b&gt;発売日：&lt;/b&gt;YYYY-mm-dd&lt;/li&gt;<br />
&lt;li&gt;&lt;b&gt;なんか：&lt;/b&gt;うううう&lt;/li&gt;<br />
&lt;/ul&gt;</p></blockquote>
<p>こんなかんじ。発売日の順番が商品によって違うので、<br />
Xpathは<br />
/html/body/table[1]/tbody/tr/td/div/ul[1]/li<br />
でリストを配列で取得して走査。</p>
<p>ただこの状態だと<br />
&lt;b&gt;発売日：&lt;/b&gt;YYYY-mm-dd　を取ってきてしまう。</p>
<p>YYYY-mm-dd部分のだけ取る方法ねーかなー正規表現で抜くかなーと悩んでたら<br />
こんな感じでとれるよーと<a href="http://twitter.com/otchy/status/1217947980">otchyさん</a>に教えてもらた。</p>
<p>/html/body/table[1]/tbody/tr/td/div/ul[1]/li/child::node()[2]</p>
<p>child::node()はnode()でもおｋ</p>
<blockquote><p>lists = $a(&#8220;/html/body/table[1]/tbody/tr/td/div/ul[1]/li/node()[2]&#8220;);<br />
for(var i in lists){<br />
var t = Date.parse(lists[i].nodeValue);<br />
if(!isNaN(t)){<br />
releaseDate = t;<br />
}<br />
}</p></blockquote>
<p><ins datetime="2009-02-17T09:16:18+00:00"><br />
node()[1]で前の部分が取れる。</ins><ins datetime="2009-02-17T09:16:18+00:00"> 最初テキストinnerHTMLで取ろうとしたら取れなかった…。(おそらくXMLだから?よくわからんけど。)<br />
nodeNameをみたら#textだったのでnodeValueにしたら取れた。<br />
$a は<a href="http://www.otchy.net/20090120/first-five-lines-of-greasemonkey/">ここの使ってる</a></ins></p>
<p>なるほどねー。XPath初めて使ったけどコレは便利。<br />
今回は習作として、今後ちょっといろいろ作ってみようと思った次第でした。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gifumaster.com/archives/511/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.gifumaster.com/archives/511" />
	</item>
	</channel>
</rss>

