JavaからXMLプロセッサを使う方法とは?

このQ&Aのポイント
  • JavaからXMLを処理するためには、DOM・SAX・XSLTといったAPIを利用することができます。
  • XSLTはXMLを変換するためのツールであり、HTMLの生成にも使用することができます。
  • Javaとタッグを組み合わせてデータを処理する場合、XSLTを使用することでHTMLも同時に扱うことができます。
回答を見る
  • ベストアンサー

JavaからXMLプロセッサを使うとは?

JavaでXMLを処理する必要に駆られまして、一念発起して勉強しています。 XMLを処理するためには、JavaのAPIがあってそれを利用するというのはokで、処理方法にはDOM・SAX・XSLTといったものがあるというのもわかりました。 ただ、DOMやSAXが、Javaプログラムからデータを読む手助けをするためのモノというのはわかるのですが、XSLTはただの変換とどう違うのでしょうか? 本を読む限り、XSLの規則にしたがって変換するもの。となっていて、読み込ませる→変換結果が出てくる、で、なんだかHTMLの生成くらいにしか使えないような印象なのですが、Javaとタッグを組んでデータを処理させたい場合、どんな使われ方をするのでしょうか。 DOMやSAXでも良いじゃんと言われそうなのですが、HTMLも同時に扱う必要があるため、ぜひ習得したいのです。 ですが、市販のJava本はほとんどXMLパーサ関係ばかりで・・・。また、何かいい参考書もあったら教えていただきたいと思います。

  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • sougou
  • ベストアンサー率41% (18/43)
回答No.1

サーバーサイドでJavaを語る場合に、XSLTは語られたりします。 サーバーサイドでHTMLを応答するWebアプリケーションを作成する場合、通常、JavaサーブレットとJSPがよく語られますが、上記2つに関しては、アプリケーションのロジック部分と、ページの見た目を決定するHTML部分が、開発上、混在してしまう為、プログラマーとデザイナーの仕事の分離がしづらいといった問題がありました。 ここで、XSLTの登場になるかと思います。 つまり、Webアプリケーション(プログラマーが作成)は、見た目の部分に影響されないXMLデータを出力し、Webアプリケーションが出力したXMLとデザイナーが作成したXSLTを適用させてHTMLを生成し、クライアントに応答するといったことができます。 つまり、XML&XSLTによりプログラマーとデザイナーの仕事が明確に分離できる、ということになります。 このやり方だと、例えば、ブラウザのタイプ及び言語タイプ別にXSLTを用意しておけば、それぞれのブラウザ、言語に対応したHTMLを応答する仕組みなんかも作れちゃったりします。 上記のXML + XSLT = HTMLの処理は、CocoonというJavaサーブレットがよく使われたりします。ですので、Cocoonを調べられるとさらに理解が深まるかもしれませんよ! 尚、私は、以上のような内容を、以下の参考URLを良く見て技術調査を行っています。 以上です。

参考URL:
http://www.atmarkit.co.jp/index.html
pythian
質問者

お礼

ありがとうございます。 単にHTMLの生成だったら話は簡単だったのですが、さらにjavaに仕事を渡してサーバ外部との連携をとっていくハメになってしまったので(^-^; さらに勉強してみたいと思います。 ひとまず、XSLTを仕様書を頑張って読んでみます。

関連するQ&A

  • XMLパーサの種類について混乱してます

    XSLTをいじる必要に駆られて、現在Java1.4+JAXP1.1を利用しています。 いままで、javax.xml.transformをimportしてメソッドを実行するだけで、「変換系に何を使っているのか」については全く気にしていなかったのですが、その実体は何なのでしょうか? (XTとかXalanとか、単体の変換系がありますよね・・・?) また、DOMパーサ、SAXパーサもJAXPで使えますが、各々のパーサや変換系を集めてパッケージにしたものがJAXPなんでしょうか。 さらに、勉強中にXMLパーサという単語が出てきて混乱しています。XMLパーサは、DOM・SAX・XSLT等とは違うのでしょうか? (XMLパーサと名乗っているXercesは何に使うのでしょうか・・・) DTDとの関連も含めて解説して頂けたら嬉しいです。

    • ベストアンサー
    • Java
  • JavaでのXMLパーサの使用について

    javaでパーサを使ってDOMツリーを作成したいのですが、パーサインスタンスが作成できずにエラーがでてしまいます。ちなみにコンパイルは通ります。 以下にソースとエラー内容を記述しますので、もしよろしかったらどなたか教えて下さい。 import java.io.*; import com.ibm.xml.parsers.*; import org.xml.sax.*; import org.w3c.dom.*; public static void main(String[] args){ try{      //XML文書作成 String xml = "<sample>Hello Java World</sample>"; //DOMパーサ作成 DOMParser parser = new DOMParser(); //入力ストリーム作成      StringReader sr = new StringReader(xml); InputSource is = new InputSource(sr); //パースする parser.parse(is); //ドキュメントを得る Document doc = parser.getDocument(); //トップレベル要素を得る Element el = doc.getDocumentElement(); System.out.println("Top Level Element: " + el.getTagName()); } catch(Exception e){ e.printStackTrace(); } } エラー内容: java.lang.NoClassDefFoundError: com.ibm.xml.parsers.DOMParser java.lang.Throwable(java.lang.String) java.lang.Error(java.lang.String) java.lang.LinkageError(java.lang.String) java.lang.NoClassDefFoundError(java.lang.String) void pkxml.dom.PsDomBean.makedom() void pkxml.dom.PsDomBean.makedom() void pkxmlsutabu.Sutabu.main(java.lang.String [])

  • XMLからHTMLへの変換方法について

    XMLをXSLを利用してHTMLに変換しようとしています。 以下のXML(一部)の中に記載の<break />をHTMLの<br>にXSLTを使って変換したいのですが、どのように記述(処理)したらよいかわかりません。教えてください。 <item name="jikou"> <text>==================================================== <break /> 日 程:2004年03月28日(日) <break />  ※変更となっております。 <break />=================================== </text> </item>

    • ベストアンサー
    • XML
  • jdkで使用されているXMLパーサ

    いつもお世話になります。 jdkで使用されているXMLパーサは何なのでしょうか。 javaでXMLを操作するに当たり、jaxpというapiが用意されていますが、jaxpはあくまでdomやsaxの 実装クラスをラップしたものだという認識でいます。 では何の実装クラスが使われているのでしょうか。各パージョンで何が使われているのか知りたいです。 また、ここら辺の事を説明しているサイトがあれば教えて頂けると嬉しいです。 宜しくお願いします。

    • ベストアンサー
    • Java
  • XML → HTML の確認方法

    閲覧ありがとうございます。 まったくの初心者で、かなり初歩的なことだと思うのですが質問させていただきます。 XML文書についてなんですが、Web上でHTMLとして確認したいのですが、それができなくて困っています。泣 XMLの知識がまったくなかったので、色々調べてみたのですが、結果 XML + XSLスタイルシート → HTMLに変換されてWeb上でみれる・・・ということが分かりました。 また、その変換に processorが必要・・・ということも分かりました。 パソコン内にXSLスタイルシートを発見し、HTMLに変換するのに、Easy XSLT processortというのもダウンロードしてみたのですが、使いたかがよくわからず、使えずにいます・・・泣。 また、XML文書につきましては、あるツールを使って簡単に作成しているのでXML文書についての知識は本当にありません。XSLスタイルシートももともと入っていたものなのでよくわかりません。 XML文書もXSLスタイルシートもあるので、このEasy XSLT processorがうまく使えればWeb上でうまく表示されると思うのですが、どのようにすればいいのでしょうか(><)? XMLの部分にXML文書のファイルを、XSLの部分にXSLスタイルシートのファイルを選択しているのですが、毎回「オートフォーメーションサーバーはオブジェクトを作成できません」「undifindはNullまたはオブジェクトではありません」と言われて、終了してしまいます。 本当に初歩的なことでごめんなさい。 長文を読んで下り、ありがとうございます。ご回答お待ちしております。 (補足) 今までWindowsXPを使用しておりまして、作成したXML文書をクリックするだけでWeb上で文書が表示され、確認することができてたのですが、最近Windows7にかわってから、作成したXML文書をクリックしてもWeb上でうまく表示されなくなってしまいました(><)。 見られなくなった、というよりは、今まで表のように見れていたものが、ずらずら~とした単なる文字の羅列になってしまいました。泣 もしprocessorうんぬんの問題ではない場合も、ご指摘いただけると幸いです。

    • 締切済み
    • XML
  • DOMデータを使ってSAXで解析する方法

    Javaで作成したDOMデータをSAXを使って解析するには どのようにしたら良いのでしょうか? サンプル等ではXMLファイルを読み込んで解析する処理は 沢山あるのですが、DOMのデータをSAXに渡して解析 するような処理が見当たらなかったので質問しました。

    • ベストアンサー
    • XML
  • JavaでXMLをファイルからじゃなく扱いたい

    Javaで例えば、String変数に String str = "<xml sample>hogehoge</xml sample>" みたいにXML形式のデータが入っているとして、このデータを、XMLファイルをDOMで扱う時のように扱えないでしょうか?一度、ファイルに書きだして、XMLファイルとして読み込ませないと難しいでしょうか?

    • ベストアンサー
    • Java
  • XMLとHTMLの違いについて

    とても初歩的な質問になりますが、 よく参考書などに、XSLTはXMLを別の形式(HTML)などに変換するための機能です、と記載されていますが、 それであれば最初からHTMLで書いていけば、変換の必要がなくなり早いと思うのですが。 XMLの長所、必要性などおわかりの方教えてください。

    • ベストアンサー
    • XML
  • DOMのXML宣言値の変更

    XMLファイルをXMLパーサを使ってDOMにDocumentクラス変換します。 その変換してできたオブジェクトを操作して、 XML宣言のencodingの値を変更することは可能でしょうか?

    • ベストアンサー
    • Java
  • 全角数字を半角数字にする方法

    XML→HTMLへ変換するのに、XSLTを利用しているのですが、 XSLTで、全角数字を半角数字に変換し、HTMLへ出力することはかのうでしょうか? 環境は、Win2k+IE6(パーサは、MSXMLを利用)です。 よろしくお願いします。

    • ベストアンサー
    • XML