����
�A��

XSLT�X�^�C���V�[�g�̊�b�̊�b�FXSLT�X�^�C���V�[�g�������u���i1�j

PC�p�\�� �֘A���
Share
Tweet
LINE
Hatena

XML�֘A�K�i�̒��ł��AXSLT�͔�r�I���������i1999�N11��16���j��W3C�����ƂȂ����K�i�ł��B���̗��R�́A�قȂ�f�[�^�t�H�[�}�b�g�i���Ȃ킿�X�L�[�}�j���g����ƊԂŃf�[�^����������ꍇ�ȂǁAXSLT���g����XML�f�[�^�̍\���ϊ�������K�v����������������ł��B�ł́AXSLT�Ƃ͉����Ȃ̂ł��傤���B�܂��AXSLT�́A�ǂ̂悤�ɏ�������悢�̂ł��傤���B���̋L���́AXSLT�̏����������S�҂̕��ɂ����g�݂₷��������܂��B

XML�����R�ɕϊ�����XSLT

�@XML�̓f�[�^�̘_���I�ȍ\�����L�q���邽�߂̌���ł�����AXML�ɂ���ċL�q���ꂽXML�����i�ȉ�XML�f�[�^�j�ɂ́A���ꂪ�ǂ�ȑ̍ق�Web�u���E�U�⎆�Ȃǂɕ\�������ׂ������w�����郌�C�A�E�g���i�X�^�C�����j�͊܂܂�Ă��܂���B���̂��߁A����XML�f�[�^��\�����邽�߂ɂ́A

  1. XML�f�[�^�̍\�����A�iWeb�u���E�U�Ȃǂ́j�t�H�[�}�b�^���󂯕t����I�u�W�F�N�g�ւƁA�\���ϊ����鏈��
  2. �i�����̑傫����F�Ȃǂ́j�X�^�C���t�������鏈��

��2�‚��K�v�ł��B�����āA1.��XML�f�[�^�̍\���ϊ����w�肷�镔�����A�Ɨ������K�i�Ƃ��Ď��o�����̂�XSLT�iExtensible Stylesheet Language Transformations�j�ł��BXSLT�ɂ́A�ϐ���֐��A�J��Ԃ�������t�������Ȃǂ��܂��܂ȃv���O���~���O�@�\�����荞�܂�Ă��āA���G�ȃf�[�^�ϊ������ɂ��Ή��ł���悤�݌v����Ă��܂��B

�@XSLT��������AXML�f�[�^�̃f�[�^�\����ϊ�������@�\�́A����XML�f�[�^����A�ʂ̃t�H�[�}�b�g��XML�f�[�^��HTML�f�[�^�A�����ăe�L�X�g��CSV�Ƃ�������XML�f�[�^�ւ̕ϊ����������Ă��܂��B���̂��߁AXML�f�[�^��Web�\���̂��߂�HTML�֕ϊ�������A�Г��f�[�^�x�[�X��̃f�[�^��d�q������f�[�^�ł���XML�`���ɕϊ����邽�߂́A�ėp�R���o�[�W�����c�[���Ƃ��Ē��ڂ���Ă��܂��B

XML��HTML�ɕϊ����Ă݂悤

�@XSLT�ɂ��ϊ������̋L�q���AXSLT�̐��E�ł́u�X�^�C���V�[�g�v�Ƃ����܂��BXSLT�X�^�C���V�[�g�̋L�q�ɏ]����XML�f�[�^�̍\���ϊ����s��XSLT�̏����v���O�����́A�uXSLT�v���Z�b�T�v�ƌĂт܂��B�ȉ��A�L�����Łu�X�^�C���V�[�g�v�ƋL�q�����ꍇ�́A���ɒf��Ȃ�����XSLT�̃X�^�C���V�[�g���w���܂��B

���F�u�X�^�C���V�[�g�v�Ƃ������̂́AHTML�ł悭���p�����CSS�iCascading Style Sheet�j�̃X�^�C���V�[�g���v�������ׂ�����������낤�B�������AXSLT�̃X�^�C���V�[�g��CSS�̃X�^�C���V�[�g�́A���p�ł��閽�߂╶�@�͂܂������قȂ�ʕ����B

XSLTvZbT́AXSLTX^CV[g̋Lqɏ]XMLf[^\ϊ
XSLT�v���Z�b�T�́AXSLT�X�^�C���V�[�g�̋L�q�ɏ]����XML�f�[�^���\���ϊ�����

�@���̋L���ł́A���ꂩ��XML�f�[�^��Web�u���E�U�ŕ\�����邽�߂ɁAXML�f�[�^����HTML�f�[�^�ւ̕ϊ����@���Љ�A�X�^�C���V�[�g�̊�{�I�ȏ�������������܂��B����XSLT�X�^�C���V�[�g�̓����́A�}�C�N���\�t�g��Internet Explorer�iIE�j�Ŏ��ۂɎ������Ƃ��ł��܂��B

���F����̃T���v���𓮂����ɂ́AXSLT�̍ŐV�d�l���T�|�[�g���郂�W���[���uMSXML3.0�v ���C���X�g�[�����ėL���ɂ���K�v������܂��B�ڍׂ́A�}�C�N���\�t�g�̃T�C�g��MSXML3.0�̃y�[�W���������������B

�@XSLT�ł́A�X�^�C���V�[�g���̂�XML�̃^�O���g���ď����܂��B�܂��AXSLT�̖��O��Ԃɑ�����v�f���AXSLT�̖��߂Ƃ��Ďg�p���܂��B�܂��́AXSLT�̖��O��Ԃɑ�����ȉ���4�‚̗v�f���g���āAXML��HTML�ɕϊ�����X�^�C���V�[�g�̗���Љ�܂��傤�B

xsl:stylesheet
xsl:template
xsl:apply-templates
xsl:value-of

�@����̗�ł́A���̂悤��XML�f�[�^��Web�u���E�U�ŕ\�������邱�Ƃ��l���܂��B

<?xml version="1.0" encoding="shift_jis"?>
  <article>
    <title>XSLT����</title>
    <paragraph>���̋L����XSLT�ɂ‚��ė������Ă����������Ƃ�ړI�Ƃ������̂ł��B</paragraph>
</article>
�\��������XML�f�[�^�B ����������XML�f�[�^�ɂ́A�����̑傫����F�A���̂Ƃ�������񂪂܂������܂܂�Ă��炸�A���̂܂܂ł͕\���ł��Ȃ�

�@���̂��߂ɁA���̂悤��HTML�f�[�^�ɕϊ����܂��B

<html>
  <h1>XSLT����</h1>
  <p>���̋L����XSLT�ɂ‚��ė������Ă����������Ƃ�ړI�Ƃ������̂ł��B</p>
</html>
XML�f�[�^��HTML�ɕϊ����Ă��܂��΁AWeb�u���E�U�ŕ\���ł���`���ƂȂ�

�@���̕ϊ����AXSLT�̃X�^�C���V�[�g�łǂ̂悤�ɋL�q�ł��邩�A����ǂ��Đ������܂��傤�B

�X�^�C���V�[�g�̊�{�I�ȏ�����

���X�^�C���V�[�g�̖`���ɂ�XML�錾������

�@XSLT�̃X�^�C���V�[�g��XML�f�[�^�ł�����AXML�錾��t���܂��BUTF-8��UTF-16�ȊO�̕����R�[�h���g���ꍇ�ɂ́A�����R�[�h��encoding�����Ŏw�肵�Ă����܂��B

<?xml version="1.0" encoding="shift_jis"?>

��xsl:stylesheet�v�f

�@����́A�X�^�C���V�[�g�S�̂��J�n����i�͂ށj���̂ł��B���̖��߂Ŏw�肷��̂́AXSLT�̃o�[�W������XSLT�̖��O��Ԃ̎g�p�錾�ł��B

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > 
  �c�c
</xsl:stylesheet>

�@version="1.0"��XSLT�̃o�[�W�������w�肵�������ŁAxmlns:xsl=�`���AXSLT�̖��O��Ԃ��w�肵�������ł��B"http://www.w3.org/1999/XSL/Transform"�́AW3C�ɂ����XSLT�Ɋ��蓖�Ă�ꂽURI�ł���A�����ł͂����\�����O��Ԑړ����Ƃ���xsl���g�����Ƃɂ��Ă��܂��B��ʂɁAXSLT�̖��O��Ԑړ����Ƃ��Ă�xsl���g���܂��̂ŁAxsl:stylesheet�Axsl:template�Axsl:apply-templates�Axsl:value-of�ȂǂƂ������v�f�ɂȂ�܂��B

���e���v���[�g�̎w��

�@XML�f�[�^�̍\���ϊ����L�q����Ƃ������Ƃ́A

  1. �^����ꂽXML�f�[�^�̂ǂ̃m�[�h���A�ϊ����Ƃ���̂�
  2. �ϊ����XML�f�[�^�ɁA�ǂ�ȃm�[�h�𐶐��E�t������̂�

�@����2�‚��w�肷�邱�Ƃł��B�����āA���̎w����s���̂��e���v���[�g���[���itemplate rule�j�ŁAXSLT�ł�xsl:template�v�f�ŕ\�����܂��B

�@1.�̎w��̓p�^�[���ipattern�j�ƌĂ΂�Amatch�����Ŏw�肵�܂��i�m�[�h�̎w���XPath���@�ɏ]���܂��BXPath�ɂ‚��Ă͎���������܂��j�B

�@2.�̎w��̓e���v���[�g�itemplate�j�ƌĂ΂�Axsl:template�^�O�ŋ��܂ꂽ������XML�\���Ƃ��ĕ\�����܂��B���L�̂悤�ɂȂ�킯�ł��B

<xsl:template match=�ϊ������w�肷��p�^�[�� > 
  �c�c�ϊ���Ő��������XML�\���̃e���v���[�g�c�c
</xsl:template>

�@�Ⴆ�΁A����͕ϊ����ɂȂ�XML�f�[�^��paragraph�v�f�ɑ΂��āAHTML��p�v�f�𐶐����܂����A����͎��̂悤�ɏ����܂��B

<xsl:template match="paragraph" > 
  <p></p>
</xsl:template>

��������̃R�s�[

�@�����p�v�f�͂ł��܂����A���̂܂܂ł�p�v�f����ƂȂ��Ă��܂��Ӗ�������܂���Bp�v�f�̒��ɂ�paragraph�v�f�̒��̕�������R�s�[����K�v������̂ł��B���̂悤�Ȓl���w�肷�邽�߂�xsl:value-of�v�f���p�ӂ���Ă��܂��B

<xsl:template match="paragraph" >
  <p><xsl:value-of select="." /></p>
</xsl:template>

�@xsl:value-of�v�f��select�����Łg.�h�i�h�b�g�j�Ə�����Ă��܂����A����́u���݂̗v�f�̕�����l�v�Ƃ����Ӗ��ɂȂ�܂��B

�@���l�ɕϊ�����XML�f�[�^��title�v�f���o�������Ƃ��ɕϊ����XML�f�[�^��h1�v�f�𐶐��E�t������ꍇ�ɂ́A���̂悤�ɋL�q���܂��B

<xsl:template match="title" >
  <h1><xsl:value-of select="." /></h1>
</xsl:template>

���\���̃R���g���[��

�@XML�́A�v�f�̊K�w�Ńf�[�^���\������Ă��܂��B�e���v���[�g���[���́A�ϊ���XML�f�[�^�̗v�f���ƂɌ•ʂɎw�肵�܂����A�ϊ���ƂȂ�XML�f�[�^�i��������HTML�f�[�^�j�ɂ��\�����������Ȃ���΂Ȃ�܂���B������R���g���[������̂�xsl:apply-templates�v�f�ł��B

<xsl:template match="article" > 
  <html><xsl:apply-templates /></html>
</xsl:template>

�@���̃e���v���[�g�ł́Aarticle�v�f�ɑ΂���html�v�f�𐶐������Ă��܂����A���̒���<xsl:apply-templates />�́Aarticle�v�f�̎q�v�f�ł���title�v�f�Aparagraph�v�f��ʂ̏ꏊ�ɂ���xsl:template�v�f���g���ĕϊ���փ}�b�s���O���������ʂ�<html></html>�̊Ԃɖ��ߍ��ނƂ������̂ł��B

�����[�g�m�[�h

�@�Ō��XSLT�����̃X�^�[�g�n�_�ƂȂ���ʂȃm�[�h��������܂��傤�Bmatch�����̒l�Ƃ��āg/�h�i�X���b�V���j�Ə������[�g�m�[�h������ł��BXPath�̐����ŏq�ׂ܂����AXSLT/XPath�̃f�[�^���f���ł́AXML�̍ŏ�ʗv�f�̂���ɏ�Ƀ��[�g�m�[�h������ƍl���A����ɑ΂���XSLT���������s���邱�Ƃɂ���č\���ϊ����J�n���܂��B����́A�P��article�v�f�ւƏ������‚Ȃ��΂悢�̂ŁA���̂悤�ɋL�q���܂��B

<xsl:template match="/" >
  <xsl:apply-templates />
</xsl:template>

�@<xsl:apply-templates />�̕����ɁA���[�g�m�[�h�̎q�ǂ��ł���article�v�f�̃}�b�s���O���ʂ�����܂��B

�@�������܂Ƃ߂āA����XSLT�X�^�C���V�[�g���o���オ��܂����B

<?xml version="1.0" encoding="shift_jis" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > 
  <xsl:template match="/"> 
    <xsl:apply-templates/>
  </xsl:template> 
  <xsl:template match="article"> 
    <html><xsl:apply-templates/></html>
  </xsl:template>
  <xsl:template match="title"> 
    <h1><xsl:value-of select="."/></h1>
  </xsl:template> 
  <xsl:template match="paragraph" > 
    <p><xsl:value-of select="."/></p>
  </xsl:template> 
</xsl:stylesheet>

IE�ŕ\�������Ă݂悤�I

�@IE 5�ȏ�ł́AXSLT�X�^�C���V�[�g��XML�f�[�^�ɓK�p�����邱�Ƃɂ���ĕϊ����HTML��\�������邱�Ƃ��ł��܂��B��قǍ����XSLT�X�^�C���V�[�g��article-view.xsl�Ƃ����t�@�C���ŕۑ������ꍇ�A�ȉ���xml-stylesheet�������߂��g���Ă��̃t�@�C����href�̐�Ɏw�肵�܂��B

<?xml version="1.0" encoding="Shift_JIS" ?>
<?xml-stylesheet href="article-view.xsl" type="text/xsl" ?>
<article>
  <title>XSLT����</title>
  <paragraph>���̋L����XSLT�ɂ‚��ė������Ă����������Ƃ�ړI�Ƃ������̂ł��B</paragraph>
</article>
����XML�f�[�^�ɁA�ǂ̃X�^�C���V�[�g��K�p���ĕ\�������������̎w���lj�����B��̃��X�g�ł́A2�s�ڂɒlj�����Ă���

�@type�̐�ɂ̓X�^�C���V�[�g�̎�ނ�\��MIME�^�C�v�������܂��B�K�i���XSLT���utext/xml�v�Ƃ���MIME�^�C�v�ŕ\�������̂ł����A�}�C�N���\�t�g��XML�p�[�T�ł���MSXML3.0�ł́A�utext/xsl�v�Ə����Ȃ����XSLT�̃X�^�C���V�[�g��K�p���Ă���܂���B���̓_�ɂ͒��ӂ��K�v�ł��B

�@IE 5�ł̕\�����ʂ��ȉ��Ɏ����܂��B

IE 5ɂ\ʁBXMLf[^X^CV[gɂHTMLf[^ɕϊA\Ă
IE 5�ɂ��\�����ʁBXML�f�[�^���X�^�C���V�[�g�ɂ����HTML�f�[�^�ɕϊ�����A�\������Ă���

�@���āA�����Ő��������X�^�C���V�[�g�̊�{�I�ȏ��������܂Ƃ߂�ƁA���̂Ƃ���ɂȂ�܂��B

  1. �܂��X�^�C���V�[�g�̖`����XML�錾�����܂��B
  2. �����āA�X�^�C���V�[�g�v�f<xsl:stylesheet >�`</xsl:stylesheet>�őS�̂��݂͂܂��B
  3. ���[�g�m�[�h���珇�ɕϊ����čs���܂��B�ϊ��̎d���́Axsl:template�v�f�ŕ\�����e���v���[�g���[���Ƃ����A�ϊ����邽�߂̂ЂȌ^���g���Ďw�肵�܂��B

�@XSLT�X�^�C���V�[�g�̑�܂��ȃC���[�W���‚��߂��ł��傤���H ����́A�ϊ���XML�f�[�^���̏����Ώۃm�[�h���w�肷�邽�߂̌���XPath�ɂ‚��ĉ�����܂��B

�{�L���́A���{���j�e�b�N���s��XML�e�N�m���W�[������񎏁uDigital Xpress�v�Ɍf�ڂ��ꂽ�AXSLT���W�uXSLT�̎��͂�T��I�v��1�񂩂��3��̓��e�����ƂɁA���M�C���������̂ł��B



Copyright © ITmedia, Inc. All Rights Reserved.

�y�[�W�g�b�v�ɖ߂�
OSZAR »