SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

今からでも遅くない、JAXPを学ぼう!

今からでも遅くない JAXPを学ぼう!(前編)
XPathとXSLTを体験する

まずはXPathとXSLTの理解から


  • このエントリーをはてなブックマークに追加

ダウンロード サンプルコード (3.2 KB)

 XMLは確実にITの世界に根付いており、Webサービスを習得するにはXMLの知識は必須と言えます。当記事ではJAXP(Java API for XML Processing)の仕様の基礎となっているXPathとXSLTについて学び、JavaでXML文書をどう扱うかを説明します。

  • このエントリーをはてなブックマークに追加

JAXP(Java API for XML Processing)とは

 JAXPとはJava API for XML Processingの略であることから、どのようなものか推測できます。XML文書を処理するためのJava APIと言えば何となく理解できるかと思いますが、XML文書を処理すると言ってもJava自らが処理するわけではなく、既にXMLの世界にあるXML文書を処理するための方法を用いて処理することになります。

 具体的には次のような仕様を基礎にしています。これらの仕様はJAXPの仕様ではありません。JAXPはあくまでこれらの仕様の上に作られています。

  • XSLT(XSL Transformations)
  • XPath(XML Path Language)
  • XInclude(XML Inclusions)
  • DOM(Document Object Model) Level 2
  • DOM Level 3
  • SAX(Simple API for XML)

 SAXはXML orgの仕様ですが、それ以外はすべてW3Cの仕様です。当記事ではXPathとXSLTそのものと、それらをJAXPでどう扱うか説明します。JAXPのバージョンはv1.4を元にします。

前提知識

 XPathやXSLTを理解するには若干のXMLの知識が必要です。Javaも使用しますが、何かしらJavaでプログラムを作ったことがあれば大丈夫です。

XPathとは何か

 XPathとはXML文書の特定の箇所を指定するためのものです。XPath仕様に従って戻り値を返すものをXPath式と呼びますが、実際の戻り値は特定の箇所(ノードセット)だけではありません。ノードセットに加え、数値、ブール値、文字列も返すところがXSLTのパターンと異なるところです。パターンはノードセットを返すのみです。このような意味においてXSLTを説明する前にXPathを説明しています。簡単なことを行うにはパターンでも十分ですが、プロとなるにはXPath式の習得が必須となります(筆者の基準では、プロとなるには再帰的なテンプレート処理を記述できるようになることも含まれますが、当記事では説明しません。プロを目指す方は挑戦されてはいかがでしょうか)。

 XPathの詳細を知りたい方はXML Path Language (XPath) Version 1.0を参照ください。

 パターンはPath式のサブセットです。Path式を意識しなければならない箇所が出てきた時に説明します。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
XSLTとは何か

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
今からでも遅くない、JAXPを学ぼう!連載記事一覧
この記事の著者

川久保 智晴(カワクボ トモハル)

haruプログラミング教室(https://haru-idea.jp/)主宰。COBOL、FORTRANで13年、Javaを中心としたWeb開発で11年。3つしか言語知らないのかというとそうでもなく、sed/awk、Perl、Python, PHP,  C#, JavaScriptなども一時期は業...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5137 2010/05/31 16:41

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング