2012年1月27日、XMLをjQuery風に操作できるJavaライブラリ「jOOX 1.0.0」がリリースされました。jOOXはLukas Eder氏が開発したもので、流れるようなインタフェース(Fluent Interface)(注1)で記述していくことでXMLの走査や編集が行えます。Java 5から導入されたStatic Importをうまく使っており、非常に簡潔な記述を実現しています(リスト)。 Lukas Eder氏はjOOXのように流れるようなインタフェースでラップしたライブラリをほかにも公開しており、SQLのように書けるjOOQやリフレクションを簡潔に表せるjOORなどがあります。jOOXのWebサイトからリンクされていますので、興味のある方はぜひ参照してみてください。 リスト jOOXを使ったコード Document doc = $(new File("foo.xml
Jaxen is an open source XPath library written in Java. It is adaptable to many different object models, including DOM, XOM, dom4j, and JDOM. Is it also possible to write adapters that treat non-XML trees such as compiled Java byte code or Java beans as XML, thus enabling you to query these trees with XPath too. News XOM 1.1 bundles Jaxen 1.1. Bob McWhirter talked about Jaxen at Software Developm
各種ブログのRSSのようなWeb上のXMLリソースをdom4jやJDOMなどで読み込むと、パースに失敗するケースがとても多いです。というのも、こういうXMLは基本的に、validであることをあまり期待できないからです(エスケープ漏れがあったり、"<!--"で始まったコメントの直後に"-"が来たりする[追記: これはinvalidな例じゃなく非well-formedな例でした])。ひどいときはwell-formedですらないこともあります。 こういう問題がある場合、HTMLであれば、MayaaやS2JSFでも採用されているNekoHTMLというライブラリを使って、エラーを出さずにルーズにパースできます。このNekoHTMLを、HTMLではなくXMLに適用する方法を調べたので、メモしておきます。 パーサを以下のような構成にすると、XMLの解析に適した状態になります。 NekoHTML側ではなく
先日リリースした参院選予測市場がデジタルARENAで紹介されたり山口先生にも取り上げていただいたりなど思いのほか盛り上がっていてうれしい今日この頃ですが、sangi.inではそのほかに候補者のブログを定期的にクローリングしてあれこれ情報を提供するサービスも準備中です。 で、先日KNNの神田さんが参院選に東京選挙区から立候補予定とのことで、KandaNewsNetworkを巡回対象に加えたが、Firefoxで提供フィードを見ても何も表示されない。何でかと思ったらo:pという謎の要素が原因らしく、Informaさん(の中の人のJDOMさん)もorg.jdom.IllegalNameException: The name "o:p" is not legal for JDOM/XML elements: Element names cannot contain colons.とお怒り。未定義の名
OperaにXMLファイルを読ませるとベタテキストが出てくる。フィードだと「新規購読」というダイアログが出るけれども、画面に表示されるのは容赦ないベタテキストだ。IEやFirefoxにスタイル情報のないXMLを渡せばドキュメントツリーを表示してくれるのと対照的で、どうもOperaはXMLにやる気がないのかと勝手に思っていた。 だが、整形式でないXMLを投げた場合、Operaのエラー表示が圧倒的に見やすいことに最近気づいた。たとえば、以下のようなXMLをブラウザに表示させてみる: <?xml version="1.0" encoding="UTF-8"?> <root> <hoge>あああ</hoge> <hoge>いいい <hoge>ううう</hoge> </root>
"Build a better mousetrap, and the world will beat a path to your door." --Emerson To provide a complete, Java-based solution for accessing, manipulating, and outputting XML data from Java code. Read more about our project goals. JDOM 2.0.6.1 is available! This release contains a few fixes including a security fix: Fixes Issue 156 - Report prolog whitespace Fixes Issue 161 - org.jdom2.contrib.inpu
Envoi SolutionsはStAXパーサコレクションJettisonを公開している。執筆現在における最新版は9日(米国時間)に公開されたJettison 1.0 alpha-1。同成果物はCodehaus Foundationのもとでホスティングされ、Apache License Version 2.0のもとでオープンソースソフトウェアとして公開されている。 JettisonはもともとXFireおよびCXFにおいてJSONベースのサービスを活用するために開発された。StAXパーサとしての機能をもっているほかJSONのデータを読み書きする機能をもっており、JSONデータとXMLデータの変換用ライブラリとして活用することができる。 JSON(JavaScript Object Notation)はおもにJavaScriptで活用されているデータ表現形式。JavaScriptのサブセットを
XPathとは? XPathはXML文書の内部のノード間の位置を指定するための言語です。 特定のパターンによるマッチングと組み込み関数を利用することで、多様な表現が可能となっています。 次回で解説するXSLの文書の中でも目的の要素を見つけ出すためにXPathによる表現が利用されます。 またXMLデータベースであるXindiceなどでも検索の手段にXPathが用いられます。 XPathでは、XML文書の中を「たどっていく」ための記述を使用します。 一番わかりやすいのは、ノード間の親子・兄弟関係でしょう。 child::abc // 現在の場所から見て子供にあたる要素 abc child::text() // 現在の場所から見て子供にあたるテキストノード child::* // 現在の場所から見て子供にあたる任意の要素 preceding-sibling::abc // 現在の
XML guy としての、最近の心境です。 そもそも XML とは何なのか、について考えさせられることが多くなりました。 一つはまつもとゆきひろさんの「私はなぜ XML を愛していないか」という日記です。ここで、まつもとさんはデータ記述言語としての XML の存在意義に疑問を投げかけられています。「XML を愛する人」と自己紹介している身としては、この日記に反論? しておきたかったのですが、考えをうまく文章化することができず、時機を逸してしまいました。 もう一つは檜山さんの一連の記事(Java World の連載および chimaira.org)です。どちらの記事においても、檜山さんは一貫して XML タグ構文とソフトウェアコンポーネントを統合的に取り扱うアーキテクチャ(の土台となるべき議論)について論じられています。 まつもとさんの指摘を一言で言い表すと「XML ってそんなにイイの? 使
とある仕事で、XMLにインデントをつけてを整形する必要があった。 多分、書き出す時にでもオプションがあるんだろう・・とタカをくくっていたが、それは大間違いであった(笑) いろいろ調べてみて、一番手っ取り早い方法は、XSLTを使えと、そういう事らしい。 まずは、こんなXSLを作る。 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xalan="http://xml.apache.org/xslt"> <xsl:output method="xml" encoding="UTF-8" indent="yes" xalan:indent-amount="2"/> <xsl:template matc
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く