- ベストアンサー
xhtml エレメントの xpath 表記
xhtml 内で、例えば <meta name="robots" content="noindex,nofollow" /> の、content の部分を指す xpath 表記を教えて頂けますか? noindex,nofollow の部分を取り出したいのです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
xpathでいうと /html/head/meta/@content かなあと思いますが、 通常meta が複数あるのでxpath で直接指定というのはできないんじゃないかなと思います。 どういう状況で使うのかは判らないですけど、 meta/@content とか ./@content とかでもいいかもしれません。 スクリプトからなら getElementsByName('robots') を使うのが早いかも 状況がわからんので勘違いコメントだったらすみません。
その他の回答 (1)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
回答No.2
試してみたのですが、 oXML.documentElement.selectSingleNode("//meta/@content[../@name='robots']").nodeValue で取り出せました。 ご参考に
補足
ありがとうございます。状況としては、selenium というウェブアプリ テストツールを使用する際に、正しくページが読み込まれたことの マーカとして meta タグのエレメントを使用したいのです。 //meta[@name='robots'][@content] みたいな形式かなと思っていたのですが、細かいところがよくわかりません。でも、xhtml に準拠している場合、複数の項目がある場合に xpath で指定できないはずはないと考えているのですが、いかがでしょうか(でないと実際に使い物にならないはず)。少なくとも*番目、という指定はできると考えています。 ともあれ、getElementsByName('robots') で一意に指定できるのであればこちらの解法を試してみたいと思います。m(_ _)m