ja ja ja ja ja ja ja ja ja en ja ja ja ja ja ja ja ja ja ja ja de ja ja ja ja ja ja id ja ja ja ja ja ja ja ja en ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja en ja ja en ja ja vi ja sv eu ja en en hu ja ja en en pl ja ja jbo hbs_lat en ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja
% sudo luarocks install luacs
LuaCSの主な機能を紹介します。
LuaCSを使うとLuaで以下のことができます。
CSSセレクターをXPathへ変換する
LuaCSを使って、簡単にCSSセレクターをXPathへ変換できます。
具体的には、to_xpathsという関数を使って以下のように変換します。
local luacs = require("luacs") -- CSSセレクターをXPathに変換 local xpaths = luacs.to_xpaths("*, .class, #id") for _, xpath in ipairs(xpaths) do print(xpath) -- /descendant::* -- /descendant::*[@class][contains(concat(' ', normalize-space(@class), ' '), ' class ')] -- /descendant::*[@id='id' or @name='id'] end
上記のように、to_xpathの引数には、,区切りで複数のCSSセレクターを指定できます。
XMLuaと連携して、XML/HTMLのDOM内のノードをCSSセレクターを使って検索する。
Lua用HTML・XML処理ライブラリー XMLua は、version 1.0.4 からCSSセレクターを用いたノードの検索をサポートしています。 XMLuaのCSSセレクターを用いた検索機能は、LuaCSを使って実現しています。
CSSセレクターを用いた検索は、以下のように行います。
検索条件にマッチしたノードは、Luaのテーブルとして取得できますので、[]を用いたアクセスや#を用いて、検索条件にマッチしたノード数を取得できます。
local xmlua = require("xmlua") local xml = [[                   ]] local document = xmlua.XML.parse(xml) -- class="B" または、id="CB"の要素をすべて検索します。 local all_classes = document:css_select(".B, #CB") -- "#"を使ってマッチしたノードの数を出力できます。 print(#all_classes) -- -> 4 -- "[]"を使って、N番目のノードにアクセスできます。 print(all_classes[1]:to_xml()) -- ->   print(all_classes[2]:to_xml()) -- ->   print(all_classes[3]:to_xml()) -- ->   print(all_classes[4]:to_xml()) -- ->
LuaCSの主な機能を紹介しました。より詳しい内容については、以下のドキュメントも参照してください。
LuaCS - リファレンス
LuaCS - チュートリアル
このライブラリーは、XMLuaと同様株式会社セナネットワークス様からの依頼を受けて開発した受託開発の成果物です。
成果物をフリーソフトウェアとして公開すると、様々なユーザーがライブラリーを使うことによって、いままで気が付かなかったバグを発見できたり、ユーザーからの要望によって、当初想定していなかった、便利な新機能を実装するきっかけとなったり、様々なメリットがあます。
このように成果物の公開によって、ライブラリーの品質も高まるので、お客さんにとっても成果物を公開するメリットがあります。
ご依頼主の株式会社セナネットワークス様には、上記のようなメリットにご理解をいただき、成果を公開できました。ありがとうございます!
現在クリアコードではソフトウェア開発者を募集しています! フリーソフトウェア開発での開発の仕方をベースに、成果や知識を公開し共有しながら業務に携われます。
Active Directoryを使用していない環境で、Firefoxに任意のルート証明書を自動インポートする方法
DebianパッケージでMesonに移行するプロジェクトに対応するには
Apache Arrow
milter manager
ククログの記事はCC BY-SA 4.0とGFDLのデュアルライセンスで自由に利用できます。
クリアコードはプログラミングが楽しいソフトウェア開発者を1名募集しています。
クリアコードは「クリアコードをいい感じにする人」を1名募集しています。
クリアコードはフリーソフトウェア開発で培った技術力を提供しています。特にMozilla製品(Mozilla FirefoxとMozilla Thunderbird)とRubyとGroonga(全文検索)に関連した開発を得意としています。