|
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 µµ ÂüÁ¶ÇϽʽÿÀ.