E4X XML rocks!!
ていうかE4XのXMLすげーよ!Firebugとあんまり相性よくないけど。
var t =
<ul><li><a href="moomoo">xx</a></li></ul>
これでXMLオブジェクトができるの。
typeof t == "xml"
ね。
で
var href = t..a.@href
だけで
var href = document.evaluate('//a[@href]', t);
とおなじになるのよー。ちょーべんり。evaluateだとあとで自分でイテレータまわすとかへんなことしないといけないけどそんなのいらないよ!
ただこのままだと
typeof href == xml
なので気になる場合は
href = href.toString()
するといいです。気にしなくても自動変換で解決だろうけど。気になる場合は。
複雑なのもできたりするのかな。
できません。
ECMAScript for XML (E4X) 仕様邦訳によると
最小量: 適切な場所では、E4X は、現在 ECMAScript オブジェクトを操作するのに利用できない XML を操作するための新しい演算子を定義する。この演算子のセットは不必要な複雑さを避けるため最小限に保持されるべきである。例えば XPath のすべての機能を提供することは E4X の目標ではない。
そのとおりだとおもうけど複雑なことができるちょっと手前まではできる。containsとかある。asendantとかsiblingとかみたいな評価基準点はサポートしないことにしてるっぽい。parentみたいなのもない。たしかにあれ削れば実装が格段に単純になりそう。
PHPのXML/DOM系関数と比べるとあり得ないくらいにシンプルになっててできないのはXPathの複雑な式評価だけ。こんどまじめに読む。
つーかまじはてなのエディタむかつく。タグが書けるのか書けないのかはっきりしてほしい。
ていうかこのページ E4X XML で検索して上にきすぎる。だれもこのページ見てないのにな。はてなダイアリが強すぎるってことか。