JavaでXPathを扱うときに覚えておきたいメモ

複数のネームスペースがあるXMLドキュメントをJavaで処理する場合に、知らなければ分からなそうなXPathの書き方のメモ

Apache NiFiのEvaluateXPathプロセッサーを設定中にこの問題にはまったが、これはJavaXPathを処理するライブラリの都合のよう。

stackoverflow.com

そのまま書くと以下のようなXPathで処理してほしいところが、

/item/description

複数のネームスペースがある場合は、以下のように書かないとうまく処理されない。

/*[local-name()='item']/*[local-name()='description']

 

ちなみにApache NiFiを使って、XMLの取得とパース、JSONフォーマットへの変換フローを設定することができた。使ったNiFiのプロセッサーは"SplitXml", "EvaluateXPath", "AttributeToJSON"で、XMLドキュメント内の要素を分割、指定したXPathで分割したXMLから値を取得してNiFiのattributeとして取り出し、最終的にJSONに変換している。NiFiベースのRSSリーダーが作れそう。

今週のお題「2017年にやりたいこと」

今年こそGLSLでシェーダーを書けるようになりたい。さらに、デモシーンを作ってみたい。

これまで漫然とデモシーンを作れたら楽しそうだと思っていたけど、何から始めればいいのかさっぱり分からない状態だったが、最近になってProcessingベースのサンプルコードやシェーダーの解説記事を読んで何となくやれそうな気がしてきた。今年一年かけてじっくり挑戦してみたいと思う所存でおります。

Processingはサウンドプログラミングもできる

知識ゼロからデモシーンに入門するなら、Processingでプログラムを始めるととっつきやすそう。たまたま入門に良さそうなサンプルコードを見つけて、Processingでサウンド、グラフィック両方をプログラムできることに気づかされた。

github.com

The Book of Shaders

シェーダープログラミングは、The Book of Shadersを読み始めて急に分かってきた気になった。特にShaping functionsの内容が分かってくるとなんとなく基本が分かってきて自信になる。ここからさらに、便利なfunctionを覚えて使いなせるようになればそれなりのデモシーン的なものが作れそうという希望が見えてくる。

thebookofshaders.com