<?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>岐阜18年・東京8年・そしてまた岐阜、な人のノート &#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>影でこそこそ言うブログ</description>
	<lastBuildDate>Thu, 24 Jun 2010 00:51:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<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>
