Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

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

まずはXPathとXSLTの理解から

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2010/05/31 14:00

ダウンロード サンプルコード (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式を意識しなければならない箇所が出てきた時に説明します。


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

著者プロフィール

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

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

バックナンバー

連載:今からでも遅くない、JAXPを学ぼう!
All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5