반응형

XPath [XML Path Language] 언어 간단 정리

감사합니다 고맙습니다 행운을 드립니다

XPath(XML Path Language)는 W3C의 표준으로 확장 생성 언어 문서의 구조를 통해 경로 위에 지정한 구문을 사용하여 항목을 배치하고 처리하는 방법을 기술하는 언어이다.

XML 표현보다 더 쉽고 약어로 되어 있으며, XSL 변환(XSLT)과 XML 지시자 언어(XPointer)에 쓰이는 언어이다.

XPath는 XML 문서의 노드를 정의하기 위하여 경로식을 사용하며, 수학 함수와 기타 확장 가능한 표현들이 있다.


XML 예제 문서

<?xml version="1.0" encoding="utf-8"?>

<wikimedia>

  <projects>

    <project name="Wikipedia" launch="2001-01-05">

      <editions>

        <edition language="English">en.wikipedia.org</edition>

        <edition language="German">de.wikipedia.org</edition>

        <edition language="French">fr.wikipedia.org</edition>

        <edition language="Polish">pl.wikipedia.org</edition>

      </editions>

    </project>

    <project name="Wiktionary" launch="2002-12-12">

      <editions>

        <edition language="English">en.wiktionary.org</edition>

        <edition language="French">fr.wiktionary.org</edition>

        <edition language="Vietnamese">vi.wiktionary.org</edition>

        <edition language="Turkish">tr.wiktionary.org</edition>

      </editions>

    </project>

  </projects>

</wikimedia>

   

아래의 XPath 식은

/wikimedia/projects/project/@name

모든 project 요소의 name 속성을 선택하고,


아래의 XPath 식은

/wikimedia/projects/project/editions/edition[@language="English"]/text()

모든 영문 Wikimedia 프로젝트의 주소(language 속성이 English인 모든 edition 요소의 문자열)를 선택하고,


아래의 XPath 식은

/wikimedia/projects/project[@name="Wikipedia"]/editions/edition/text()

모든 위키백과의 주소(Wikipedia의 이름 특성을 가진 project 요소 아래에 존재하는 모든 edition 요소의 문자열)를 선택한다.


약간 어렵다. 위키백과 사전 참고


 

반응형
반응형

XSLT 사용법 xml


XSLT(Extensible Stylesheet Language Transformations)는

W3C에서 제정한 표준으로 XML 변환 언어를 사용하여 XML 문서로 바꿔주며, 탐색하기 위해 XPath를 사용합니다.

원본 문서는 변경되지 않으며, 원본 문서를 기반으로 새로운 문서가 생성됩니다.

새 문서는 표준 XML 문법 또는 HTML, 일반 텍스트 형식으로 출력합니다.

XSLT는 XML 데이터를 웹 페이지로 표시하기 위해 HTML 또는 XHTML 문서로 변환할 때 자주 사용합니다.

변환은 클라이언트나 서버에서 동적으로 수행되거나, 퍼블리싱 단계에서 수행되기도 합니다

XML을 PDF, PostScript, AWT, PNG와 같은 다양한 형태로 바꿀 수 있는 XML-FO로 변환할 때도 사용합니다.

XSLT는 일반적으로 서로 다른 XML 스키마를 사용하는 XML 메시지를 변환하거나, 

하나의 스키마 안에서 문서를 변경하기 위해 사용합니다.


즉 XSLT 란 XML 을 다른 형식의 출력 format 으로 바꾸어주는 표준 문법입니다.

xml 로 key, value 관계를 지정 하고 xsl 문서로 출력 형태를 지정 하면 됩니다.


아래 예제는 xsl 을


<template1> 을 정의 하고 그 다음에 <template1> 안의 내용인 <template1-1>,<template1-2> 를 정의 하는 방식입니다.

<xsl:apply-templates/> 는 자식 노드 값을 모두 나열하는데 하단에서 자식 노드출력을  template 로 지정해 주면 아래서 지정해 준 방식 대로 출력 된다.

 =================================

example.xml 내용


<?xml version="1.0" encoding="UTF-8"?>

<?xml:stylesheet type="text/xsl" href="example.xsl"?>

<MEMBERS>


<MEMBER>

 <name>스타</name>

 <email>start@gmail.com</email>

 <homepage>http://start.***.net</homepage>

</MEMBER>

<MEMBER>

 <name>달림</name>

 <email>mooni@hanmail.net</email>

 <homepage>no1</homepage>

</MEMBER>


</MEMBERS>



==============================================

example.xsl 내용


<?xml version="1.0" encoding="UTF-8"?>

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

<xsl:output method="html" indent="no" encoding="UTF-8"/>

<xsl:template match="MEMBERS">

<table border="1">

 

 <tr>

  <td>

   NAME

  </td>

  <td>

   Email

  </td>

  <td>

   Homepage

  </td>

 </tr>

 

 <xsl:apply-templates/>


</table>

</xsl:template>


<xsl:template match="MEMBER">

 <tr>

 <xsl:apply-templates/>

 </tr>

</xsl:template>


<xsl:template match="name">

 <td>

  <xsl:apply-templates/>

 </td>

</xsl:template>


<xsl:template match="email">

 <td>

  <xsl:apply-templates/>

 </td>

</xsl:template>


<xsl:template match="homepage">

 <td>

  <xsl:apply-templates/>

 </td>

</xsl:template>


</xsl:stylesheet>


==============================================

example.xml 을 웹브라우저에서 실행 시킨 결과는 다음과 같이 표시 할수 있습니다. 


 NAME

Email 

Homepage 

 스타

 start@gmail.com

 http://start.***.net

 달림

 mooni@hanmail.net

 no1


반응형

+ Recent posts