<?xml version="1.0" encoding="UTF-8" ?>
<feed
	xmlns="http://www.w3.org/2005/Atom"
	xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
	xml:lang="ja-JP"
>
	<title>私とDOM</title>
	<subtitle>最新3件を表示します。</subtitle>
	<id>tag:txqz.net,1970:/genre/DOM</id>
	<link rel="self" href="http://txqz.net/genre/DOM.atom"/>
	<link rel="alternate" type="application/rss+xml" href="http://txqz.net/genre/DOM.rdf"/>
	<link rel="alternate" type="application/xhtml+xml" href="http://txqz.net/genre/DOM.xhtml"/>
	<link rel="alternate" type="text/html" href="http://txqz.net/genre/DOM.html"/>
	<link rel="contents" href="http://txqz.net/genre" title="タグ一覧"/>
	<link rel="first" href="http://txqz.net/genre/%28%E7%A6%8F%29" title="(福)"/>
	<link rel="prev" href="http://txqz.net/genre/DMV" title="DMV"/>
	<link rel="next" href="http://txqz.net/genre/dp.SyntaxHighlighter" title="dp.SyntaxHighlighter"/>
	<link rel="last" href="http://txqz.net/genre/%EF%BD%83%EF%BD%83TLD" title="ｃｃTLD"/>
	<author>
		<name>陽坂智佐</name>
		<email>spambasket@txqz.net</email>
	</author>
	<entry>
		<title>IEではてなスターが表示されなかった</title>
		<id>tag:txqz.net,2007-12-18:/blog/2007/12/18/1758</id>
		<link rel="alternate" href="http://txqz.net/blog/2007/12/18/1758"/>
		<content type="xhtml">
			<div xmlns="http://www.w3.org/1999/xhtml">
<p>はてなスターを設けたとあるHTML文書について、FirefoxやOperaでははてスタのアイコンが現れるのにIEだと現れないという問題が発生した。あれこれ試行錯誤してみたところ、どうやら<code class="html">&lt;textarea name="comment"&gt;</code>と<code class="html">&lt;dl id="comment"&gt;</code>が原因のようだった。IEはName属性とID属性を同じ名前空間で管理しているのかな。多分それが理由で、<code class="javascript">getElementById("comment")</code>を実行すると先に現れるTextarea要素にマッチしてしまっていた模様。</p>
<p>と思ったけど、もしかしたら、Name属性値とID属性値を同じ空間で管理するのはまっとうな挙動で、OperaやFirefoxは同じIDがあったら後に出てくる要素を優先しているだけなのかもしれない。これについては詳しく調査する必要があるような気もする、というかID属性の値とかもっと考えてコーディングしていれば今回のような問題は発生しない。</p>
			</div>
		</content>
		<category term="DOM"/>
		<category term="HTML"/>
		<category term="IE"/>
		<category term="JavaScript"/>
		<category term="はてなスター"/>
		<trackback:ping>http://txqz.net/blog/2007/12/18/1758/tb</trackback:ping>
		<published>2008-01-23T21:35:27+09:00</published>
		<updated>2008-01-23T21:46:45+09:00</updated>
	</entry>
	<entry>
		<title>ジャンル一覧にはてブから取ってきたニュースを並べようとして</title>
		<id>tag:txqz.net,2007-04-16:/blog/2007/04/16/0019</id>
		<link rel="alternate" href="http://txqz.net/blog/2007/04/16/0019"/>
		<content type="xhtml">
			<div xmlns="http://www.w3.org/1999/xhtml">
<p>なんかジャンル別一覧の右カラムに、そのジャンルと同じタグをつけた私のはてブとかを載せようと思って、はてブが出してるAtomファイルを眺めてみた。</p>
<pre><code class="xml">  &lt;entry&gt;
    &lt;title&gt;こめびつの中身　-　そろそろ書店ＰＯＰも痛烈に web2.0 化しておくべきだ。&lt;/title&gt;
    &lt;link rel="related" type="text/html" href="http://d.hatena.ne.jp/hachi_gzk/20070320#1174343460" /&gt;
    &lt;link rel="alternate" type="text/html" href="http://b.hatena.ne.jp/denken/#bookmark-4259458" /&gt;
    &lt;link rel="service.edit" type="application/x.atom+xml" href="http://b.hatena.ne.jp/atom/edit/4259458" title="こめびつの中身　-　そろそろ書店ＰＯＰも痛烈に web2.0 化しておくべきだ。" /&gt;
    &lt;issued&gt;2007-03-21T14:13:36+09:00&lt;/issued&gt;
    &lt;author&gt;
      &lt;name&gt;denken&lt;/name&gt;

    &lt;/author&gt;
    &lt;id&gt;tag:hatena.ne.jp,2005:bookmark-denken-4259458&lt;/id&gt;
    &lt;summary type="text/plain"&gt;なる&lt;/summary&gt;
    
    &lt;dc:subject&gt;Web2.0&lt;/dc:subject&gt;
    
    &lt;dc:subject&gt;ポップ&lt;/dc:subject&gt;
    
    &lt;dc:subject&gt;アイデア&lt;/dc:subject&gt;

    
  &lt;/entry&gt;</code></pre>
<p>最初はDOMでやろうと思ったのだけれども、「rel属性の値が"related"であるlink要素のhref属性の値」ってDOMで簡単に書けるのか? と考えあぐねた結果、やっぱ面倒そうなのでXSLTを使った。ていうかXSLTなんてまだこの日記をXMLで書いていたころ(2003年から2004年)以来なので結構さっぱり忘れていた。件の処理はXSLTなら<code class="xml">&lt;xsl:value-of select="atom:link[@rel='related']/@href" /&gt;</code>でOKなので、そんな感じでスラスラと書いていったのだが、「ポップ」とか「アイデア」とかにリンクを張ろうとしてまた詰まった。XSLTにはURLに使えない文字についてパーセントエンコードするような関数がない。DOMを使っていれば、処理中にどこかでrawurlencode()とかかければ済むのに。どうしよう。</p>
<p>ていうかAtomじゃなくてRSSを使えばよかった。</p>
<pre><code class="xml">&lt;item rdf:about="http://d.hatena.ne.jp/gray_feny/20060916/1158376462"&gt;
    &lt;title&gt;バイク乗り野郎の独り言α+ - iPodで聴いた曲をLast.fmに送信することが出来るプラグイン&lt;/title&gt;
    &lt;link&gt;http://d.hatena.ne.jp/gray_feny/20060916/1158376462&lt;/link&gt;
    &lt;description&gt;&lt;/description&gt;
    &lt;content:encoded&gt;
      &lt;blockquote cite="http://d.hatena.ne.jp/gray_feny/20060916/1158376462" title="バイク乗り野郎の独り言α+ - iPodで聴いた曲をLast.fmに送信することが出来るプラグイン"&gt;
        
        &lt;cite&gt;&lt;a href="http://d.hatena.ne.jp/gray_feny/20060916/1158376462"&gt;バイク乗り野郎の独り言α+ - iPodで聴いた曲をLast.fmに送信することが出来るプラグイン&lt;/a&gt; &lt;a href="http://b.hatena.ne.jp/entry/http://d.hatena.ne.jp/gray_feny/20060916/1158376462"&gt;&lt;img src="http://b.hatena.ne.jp/images/entry.gif" title="このエントリーを含むブックマーク" alt="このエントリーを含むブックマーク" border="0"&gt;&lt;/a&gt;&lt;/cite&gt;

      &lt;/blockquote&gt;
      
    &lt;/content:encoded&gt;
    &lt;dc:date&gt;2007-04-15T23:14:29+09:00&lt;/dc:date&gt;
    &lt;dc:creator&gt;denken&lt;/dc:creator&gt;
    
    &lt;dc:subject&gt;last.fm&lt;/dc:subject&gt;
    
    &lt;dc:subject&gt;iPOD&lt;/dc:subject&gt;

    
    &lt;dc:subject&gt;音楽&lt;/dc:subject&gt;
    
    &lt;dc:subject&gt;ソフト&lt;/dc:subject&gt;
    
    
    &lt;taxo:topics&gt;
      &lt;rdf:Bag&gt;
      
      &lt;rdf:li resource="http://b.hatena.ne.jp/t/last%2efm" /&gt;
      
      &lt;rdf:li resource="http://b.hatena.ne.jp/t/iPOD" /&gt;
      
      &lt;rdf:li resource="http://b.hatena.ne.jp/t/%e9%9f%b3%e6%a5%bd" /&gt;
      
      &lt;rdf:li resource="http://b.hatena.ne.jp/t/%e3%82%bd%e3%83%95%e3%83%88" /&gt;

      
      &lt;/rdf:Bag&gt;
    &lt;/taxo:topics&gt;
    
&lt;/item&gt;</code></pre>
<p>なんとご丁寧にエンコード済みのURL情報まであるぞ。じゃあそういうことで。</p>
			</div>
		</content>
		<category term="Atom"/>
		<category term="DOM"/>
		<category term="RSS"/>
		<category term="XML"/>
		<category term="XSLT"/>
		<category term="はてなブックマーク"/>
		<trackback:ping>http://txqz.net/blog/2007/04/16/0019/tb</trackback:ping>
		<published>2007-04-16T00:19:11+09:00</published>
		<updated>2007-04-16T00:31:02+09:00</updated>
	</entry>
	<entry>
		<title>巷のHTMLをDocumentTraversalしたい!</title>
		<id>tag:txqz.net,2007-03-10:/blog/2007/03/10/0636</id>
		<link rel="alternate" href="http://txqz.net/blog/2007/03/10/0636"/>
		<content type="xhtml">
			<div xmlns="http://www.w3.org/1999/xhtml">
<p>ということで自作HTMLパーサは結構細かい穴があって一部のHTMLでうまくパースできないので、出来合いのHTMLパーサに手を出してみた。HTMLを読んでorg.w3c.dom.Documentオブジェクトを出してくれるパーサは<a title="SourceForge.net: Files" href="http://sourceforge.net/project/showfiles.php?group_id=118355">ShaniXmlParser</a>とか<a title="SourceForge.net: Files" href="http://sourceforge.net/project/showfiles.php?group_id=13153&amp;package_id=11263&amp;release_id=46326">Jtidy</a>とかがあるのだけれども、JTidyはまだしもShaniXMLParserってなんか遅くない? しかもarea要素を空要素とみなしてないみたい。あんまり使えないー。しかも、出てきたDocumentオブジェクトをDocumentTraversalオブジェクトにキャストしようとすると ClassCastException が出る。これはJTidy (8.0のスナップショット20060801.101359-3) でもそうなる。やっぱりTreeWalkerとか使いたかったら Xerces を使わないとダメ? Xalanでもいいのかな。まぁいいや。ていうかおまいらJとかXとか好きですね。</p>
<p>ということで、ダメHTMLを整形式HTMLに変換して文字列で出力するプロキシなんかを置いて、そこを通してXercesで処理するのが妥当な線だということで。</p>
			</div>
		</content>
		<category term="DOM"/>
		<category term="Java"/>
		<category term="Jtidy"/>
		<category term="ShaniXmlParser"/>
		<category term="Xalan"/>
		<category term="Xerces"/>
		<category term="XML"/>
		<category term="パーサ"/>
		<trackback:ping>http://txqz.net/blog/2007/03/10/0636/tb</trackback:ping>
		<published>2007-03-10T06:36:00+09:00</published>
		<updated>2007-04-27T23:27:19+09:00</updated>
	</entry>
</feed>