|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| ÀüÀÇ ÆÐŰÁö ´ÙÀ½ÀÇ ÆÐŰÁö | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
ÂüÁ¶Ã³:
¼³¸í
| ÀÎÅÍÆäÀ̽º °³¿ä | |
|---|---|
| XPath | XPath´Â XPath Æò°¡ ȯ°æ ¹× ½Ä¿¡ÀÇ ¾×¼¼½º¸¦ Á¦°øÇÕ´Ï´Ù. |
| XPathExpression | XPathExpression´Â ÄÄÆÄÀÏ µÈ XPath ½Ä¿¡ÀÇ ¾×¼¼½º¸¦ Á¦°øÇÕ´Ï´Ù. |
| XPathFunction | XPathFunction´Â XPath ÇÔ¼ö¿¡ÀÇ ¾×¼¼½º¸¦ Á¦°øÇÕ´Ï´Ù. |
| XPathFunctionResolver | XPathFunctionResolver´Â ÀÏ·ÃÀÇ »ç¿ëÀÚ Á¤ÀÇÀÇ XPathFunction¿¡
ÀÇ ¾×¼¼½º¸¦ Á¦°øÇÕ´Ï´Ù. |
| XPathVariableResolver | XPathVariableResolver´Â ÀÏ·ÃÀÇ »ç¿ëÀÚ Á¤ÀÇÀÇ XPath º¯¼ö¿¡ÀÇ ¾×¼¼½º¸¦ Á¦°øÇÕ´Ï´Ù. |
| Ŭ·¡½º °³¿ä | |
|---|---|
| XPathConstants | XPath Á¤¼öÀÔ´Ï´Ù. |
| XPathFactory | XPathFactoryÀνºÅϽº¸¦ »ç¿ëÇØ, XPath °´Ã¼¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. |
| ¿¹¿Ü °³¿ä | |
|---|---|
| XPathException | XPathException´Â ¹ü¿ë XPath ¿¹¿Ü¸¦ ³ªÅ¸³À´Ï´Ù. |
| XPathExpressionException | XPathExpressionException´Â XPath ½ÄÀÇ ¿¡·¯¸¦ ³ªÅ¸³À´Ï´Ù. |
| XPathFactoryConfigurationException | XPathFactoryConfigurationException´Â XPathFactory ȯ°æÀÇ ±¸¼º ¿¡·¯¸¦ ³ªÅ¸³À´Ï´Ù. |
| XPathFunctionException | XPathFunctionException´Â XPath ÇÔ¼öÀÇ ¿¡·¯¸¦ ³ªÅ¸³À´Ï´Ù. |
ÀÌ ÆÐŰÁö´Â XPath ½ÄÀ» Æò°¡Çϱâ À§ÇÑ ¡¸°´Ã¼ ¸ðµ¨¿¡ Á¸ÇÏÁö ¾Ê´Â´Ù¡¹API¸¦ Á¦°øÇØ, Æò°¡ ȯ°æ¿¡ ¾×¼¼½º ÇÕ´Ï´Ù.
´ÙÀ½ÀÇ XML Ç¥ÁØÀÌ Àû¿ëµË´Ï´Ù.
XPath ¾ð¾î´Â XML ¹®¼·ÎºÎÅÍ ³ëµå¸¦ ¼±ÅÃÇϱâ À§ÇÑ ´Ü¼øÇÏ°í °£°áÇÑ ±¸¹®À» Á¦°øÇÕ´Ï´Ù. ¶Ç, XML ¹®¼ °´Ã¼ ¸ðµ¨ (DOM) Æ®¸®ÀÇ ³ëµå¸¦ boolean, double, ¶Ç´Â string Ä¡·Î º¯È¯Çϱâ À§ÇÑ ±ÔÄ¢µµ Á¦°øÇÕ´Ï´Ù. XPath´Â W3C¿¡ ÀÇÇØ Á¤ÀÇµÈ ¾ð¾îÀ̸ç, °ø½ÄÀÇ W3C ±Ç°íÀÔ´Ï´Ù. W3C´Â XML Path Language (XPath) Version 1.0 »ç¾çÀ» È£½ºÆ® Çϰí ÀÖ½À´Ï´Ù.
XPath´Â 1999 ³â¿¡ XSLT ¹× XPointer ¾ð¾îÀÇ º¸ÃæÀ¸·Î¼ ź»ýÇß½À´Ï´Ù¸¸, ÃÖ±Ù¿¡´Â µ¶¸³ÇÑ ¾ð¾î·Î¼ ¶Ç ¸¹Àº DOM API ÄÚµå ´ë½Å¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â ´ÜÀÏÀÇ XPath ½ÄÀ¸·Î¼ º¸±ÞÇØ ¿Ô½À´Ï´Ù.
XPath ½ÄÀº 1°³ÀÇ ¡¸·ÎÄÉÀÌ¼Ç ÆÐ½º¡¹ ¹× 1°³ ¶Ç´Â º¹¼öÀÇ ¡¸ÇÁ·¹µðÄÉÀÌÆ®¡¹·Î ±¸¼ºµË´Ï´Ù. ½Ä¿¡´Â XPath º¯¼ö°¡ Æ÷ÇԵǴ °æ¿ìµµ ÀÖ½À´Ï´Ù.
°£´ÜÇÑ XPath ½ÄÀÇ ¿¹¸¦ ´ÙÀ½¿¡ ³ªÅ¸³À´Ï´Ù.
/foo/bar
ÀÌ ¿¹´Â ´ÙÀ½°ú °°Àº XML ¹®¼ÀÇ <bar> ¿ä¼Ò¸¦ ¼±ÅÃÇÕ´Ï´Ù.
<foo><bar/></foo>
½Ä /foo/bar´Â
·ÎÄÉÀÌ¼Ç ÆÐ½ºÀÇ ¿¹ÀÔ´Ï´Ù. XPath
·ÎÄÉÀÌ¼Ç ÆÐ½º´Â Unix ½ºÅ¸ÀÏÀÇ ÆÄÀÏ ½Ã½ºÅÛ ÆÐ½º¸¦ ´à¾Æ ÀÖ½À´Ï´Ù¸¸, XPath ½Ä¿¡¼´Â ½Ä¿¡ ¼º³É ÇÏ´Â ¡¸¸ðµç¡¹³ëµå¸¦ µ¹·ÁÁشٰí ÇÏ´Â Á¡ÀÌ Áß¿äÇÑ »óÀ§ÀÔ´Ï´Ù. µû¶ó¼, /foo/bar ½Ä¿¡ ÀÇÇØ ´ÙÀ½ÀÇ ¹®¼ÀÇ 3 °³ ¸ðµç <bar> ¿ä¼Ò°¡ ¼±Åõ˴ϴÙ.
<foo><bar/><bar/><bar/></foo>
Ưº°ÇÑ ·ÎÄÉÀÌ¼Ç ÆÐ½º ¿¬»êÀÚ, //´Â
±íÀÌ¿¡ °ü°è¾øÀÌ XML ¹®¼ÀÇ ³ëµå¸¦ ¼±ÅÃÇÕ´Ï´Ù. ¹®¼³»ÀÇ À§Ä¡¿¡ °ü°è¾øÀÌ, ¸ðµç <bar> ¿ä¼Ò¸¦ ¼±ÅÃÇÏ´Â °æ¿ìÀÇ ¿¹¸¦ ´ÙÀ½¿¡ ³ªÅ¸³À´Ï´Ù.
//bar
¿ÍÀϵå Ä«µå ¿¬»êÀÚ *¸¦ »ç¿ëÇϸé, ¸ðµç ¿ä¼Ò ³ëµå°¡ ¼±Åõ˴ϴÙ. <foo> ¿ä¼ÒÀÇ ¸ðµçÀÚ½Ä
¿ä¼Ò¸¦ ¼±ÅÃÇÏ´Â ¿¹¸¦ ´ÙÀ½¿¡ ³ªÅ¸³À´Ï´Ù.
/foo/*
XPath ·ÎÄÉÀÌ¼Ç ÆÐ½º´Â ¿ä¼Ò ³ëµå »Ó¸¸ÀÌ ¾Æ´Ï¶ó, ¼Ó¼º ³ëµå, ÅØ½ºÆ® ³ëµå, ÄÚ¸àÆ® ³ëµå ¹× ó¸®ÀÇ Áö½Ã ³ëµå¸¦ ÁÖ¼Ò ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ °¢ ³ëµåÇü¿¡ ´ëÇÑ ·ÎÄÉÀÌ¼Ç ÆÐ½ºÀÇ ¿¹¸¦ ´ÙÀ½ÀÇ °Ñ(Ç¥)¿¡ ³ªÅ¸³À´Ï´Ù.
| ·ÎÄÉÀÌ¼Ç ÆÐ½º | ¼³¸í |
/foo/bar/@id | <bar> ¿ä¼ÒÀÇ ¼Ó¼º id¸¦ ¼±Åà |
/foo/bar/text() | <bar> ¿ä¼ÒÀÇ ÅØ½ºÆ® ³ëµå¸¦ ¼±ÅÃ. À̽ºÄÉÀÌÇÁ µÈ ¹®ÀÚ µ¥ÀÌÅÍ¿Í À̽ºÄÉÀÌÇÁµÇ¾î ÀÖÁö ¾ÊÀº ¹®ÀÚ µ¥ÀÌÅÍ¿¡ Â÷ÀÌ´Â ¾ø´Â |
/foo/bar/comment() | <bar> ¿ä¼Ò¿¡ Æ÷ÇԵǴ ¸ðµç ÄÚ¸àÆ® ³ëµå¸¦ ¼±Åà |
/foo/bar/processing-instruction() | <bar> ¿ä¼Ò¿¡ Æ÷ÇԵǴ ¸ðµç ó¸®ÀÇ Áö½Ã ³ëµå¸¦ ¼±Åà |
ÇÁ·¹µðÄÉÀÌÆ®¿¡¼´Â XPath
·ÎÄÉÀÌ¼Ç ÆÐ½º·Î ¼±ÅÃµÈ ³ëµå¸¦ ¼¼·Ã ÇÏ´Â °ÍÀÌ °¡´ÉÇÕ´Ï´Ù. ÇÁ·¹µðÄÉÀÌÆ®´Â [expression]
Çü½ÄÀ» ÃëÇÕ´Ï´Ù. true°ªÀ» °¡Áö´Â include ¼Ó¼ºÀ» Æ÷ÇÔÇÑ ¸ðµç <foo> ¿ä¼Ò¸¦ ¼±ÅÃÇÏ´Â ¿¹¸¦ ´ÙÀ½¿¡ ³ªÅ¸³À´Ï´Ù.
//foo[@include='true']
ÇÁ·¹µðÄÉÀÌÆ®¸¦ ´ÙÀ½°ú °°ÀÌ Ãß°¡ÇØ, ½ÄÀ» ¶ÇÇÑ ¼¼·Ã ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
//foo[@include='true'][@mode='bar']
XPath API¸¦ »ç¿ëÇØ, XML ¹®¼·ÎºÎÅÍ 1°³ ¶Ç´Â º¹¼öÀÇ ³ëµå¸¦ ¼±ÅÃÇÏ´Â °æ¿ìÀÇ ¿¹¸¦ ´ÙÀ½¿¡ ³ªÅ¸³À´Ï´Ù.
XPath xpath = XPathFactory.newInstance(). newXPath() ;String expression = "/widgets/widget";InputSource inputSource = new InputSource("widgets.xml") ;NodeSet nodes = (NodeSet) xpath.evaluate(expression, inputSource, XPathConstants.NODESET);
XPath ½ÄÀº XML ¹®¼ÀÇ ³ëµå¸¦ ¼±ÅÃÇÕ´Ï´Ù¸¸, XPath API´Â ¼±ÅÃµÈ ³ëµå¸¦ ´ÙÀ½¿¡ ³ªÅ¸³»´Â ´Ù¸¥ µ¥ÀÌÅÍÇüÀÇ ¾î´À ÂÊÀΰ¡¿¡ ÇÕü ½Ãų ¼ö°¡ ÀÖ½À´Ï´Ù.
Boolean¼öÄ¡String¹Ù¶÷Á÷ÇÑ ¹Ýȯ°ªÀÇ ÇüÅ´ ½ÄÀ» Æò°¡Çϱâ À§Çؼ »ç¿ëµÈ ¸Þ¼µå È£Ãâ QName ÆÄ¶ó¹ÌÅÍ·Î ÁöÁ¤µÇ°í ÀÖ½À´Ï´Ù. À̰ÍÀº, XPathExpression.evalute(...)
È£ÃâÀΰ¡XPath.evaluate(...) °£ÀÌ ¸Þ¼µåÀÇ 1°³°¡ µË´Ï´Ù. Çã°¡µÇ´Â QName Ä¡´Â ´ÙÀ½°ú °°ÀÌ XPathConstants Ŭ·¡½ºÀÇ Á¤¼ö·Î¼ ÁöÁ¤µÇ°í ÀÖ½À´Ï´Ù.
XPathConstants.NODESET XPathConstants.NODE XPathConstants.STRING XPathConstants.BOOLEAN XPathConstants.NUMBER Boolean Çü ¹Ýȯ°ªÀÌ ¿ä±¸µÇ¸é, 1°³
¶Ç´Â º¹¼öÀÇ ³ëµå°¡ ¼±Åõǰí ÀÖ´Â °æ¿ì´ÂBoolean.TRUE°¡ µ¹·ÁÁÖ°íÁ® ±×·¸Áö ¾ÊÀº °æ¿ì´ÂBoolean.FALSE°¡ ¸®Åϵ˴ϴÙ
.
String ¹Ýȯ°ªÇüÀº ÅØ½ºÆ® ³ëµå, ¼Ó¼º ³ëµå, ÄÚ¸àÆ® ³ëµå, ¶Ç´Â ó¸®ÀÇ Áö½Ã ³ëµå·ÎºÎÅÍ ¹®ÀÚ µ¥ÀÌÅ͸¦ ¾ò´ÂÀÎ °æ¿ì¿¡ Æí¸®ÇÕ´Ï´Ù. ¿ä¼Ò ³ëµå¿¡ »ç¿ëÇϸé,ÀÚ½Ä
ÅØ½ºÆ® ³ëµåÀÇ °ªÀÌ ¸®Åϵ˴ϴÙ
.
Number ¹Ýȯ°ªÇüÀº ³ëµåÀÇ ÅØ½ºÆ®¸¦ double µ¥ÀÌÅÍÇü¿¡ ÇÕü ½Ãŵ´Ï´Ù.
XPath ·ÎÄÉÀÌ¼Ç ÆÐ½º´Â context·Î
ºÒ¸®´Â ¹®¼¾ÈÀÇ Æ¯Á¤ÀÇ ³ëµå¿¡ °ü·ÃµÈ °æ¿ì°¡ ÀÖ½À´Ï´Ù. ´ÙÀ½ÀÇ XML ¹®¼¸¦ ºÁ ÁÖ¼¼¿ä.
<widgets><widget><manufacturer/><dimensions/></widget></widgets>
´ÙÀ½ÀÇ XPath API ÄÚµå·Î<widget> ¿ä¼Ò¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù
.
// parse the XML as a W3C DocumentDocumentBuilder builder = DocumentBuilderFactory.newInstance(). newDocumentBuilder() ;Document document = builder.parse(new File("/widgets.xml"));
XPath xpath = XPathFactory.newInstance(). newXPath() ;String expression = "/widgets/widget";Node widgetNode = (Node) xpath.evaluate(expression, document, XPathConstants.NODE);
<widget> ¿ä¼Ò¿¡ÀÇ ÂüÁ¶°¡ ÀÖÀ¸¸é, °ü·ÃµÈ XPath ½ÄÀ» ´ÙÀ½°ú °°ÀÌ ½á, <manufacturer> ÀÚ ¿ä¼Ò¸¦ ¼±ÅÃÇϵµ·Ï ÇÒ ¼ö ÀÖ½À´Ï´Ù.
XPath xpath = XPathFactory.newInstance(). newXPath();String expression = "manufacturer";Node manufacturerNode = (Node) xpath.evaluate(expression, widgetNode, XPathConstants.NODE);
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| ÀüÀÇ ÆÐŰÁö ´ÙÀ½ÀÇ ÆÐŰÁö | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.