|
|
| ¹Ì´Ï |
2004-12-02 22:13:23, VIEW : 8,536 |
|
|
|
|
5. XPath Äõ¸®
Áö±ÝÀº ¾à 1³â Àü¿¡ Á¦°¡ ½è´ø °Á¸¦ ¾à°£ °íÃļ ¿Ã·Á³õ°í ÀÖ½À´Ï´Ù. »¡¶û ÀÌÀü °Á¸¦ ¿Ã¸®°í µû±Ùµû±ÙÇÑ »õ °Á¸¦ ÁøÇàÇϵµ·Ï ÇϰڽÀ´Ï´Ù. ¸¸¾à ±Ã±ÝÇÑ ³»¿ëÀ̳ª »õ·Ó°Ô ¿øÇÏ´Â °Á°¡ ÀÖÀ¸¸é ¸ÞÀÏ Áֽðí¿ä.. ±Ã±ÝÇÑ »çÇ×Àº Q&A °Ô½ÃÆÇÀ» ÀÌ¿ëÇØ Áֽñ⠹ٶø´Ï´Ù.
±×·³ ¿À´ÃÀº Áö³¹ø XDR ½ºÅ°¸¶¿¡¼ ¾à°£ ¾ð±ÞÇÑ ÀûÀÌ ÀÖ´Â XPath¿¡ ´ëÇØ¼ Á»´õ ¾Ë¾Æº¸·Á±¸ ÇÕ´Ï´Ù.
±»ÀÌ MSSQL¿¡¼°¡ ¾Æ´Ï´õ¶óµµ ¿©·¯ºÐÀÌ XMLÀ» ÇÏ´Ùº¸¸é XPath¸¦ »ç¿ëÇØ¾ß ÇÏ´Â °æ¿ì°¡ ¸¹ÀÌ ÀÖÀ» °Ì´Ï´Ù.
XPath´Â XML ¹®¼ ³»¿¡¼ °Ë»ö ¹æ¹ýÀ» Á¦½ÃÇØ ÁÖ´Â °ÍÀ̴ϱî¿ä.. Áß¿äÇÕ´Ï´Ù.
Á¦ °æ¿ì óÀ½¿¡ XQL °ú XML-QLÀ̶ó´Â µÎ°¡Áö XML Äõ¸®¸¦ °øºÎÇß¾ú½À´Ï´Ù.
±×¸®°í ³ ÈÄ¿¡ XPath¶ó´Â °ÍÀÌ ³ª¿Ô´õ±º¿ä..
±×·¡¼ À× ÀÌ »ý¼ÒÇÑ °ÍÀ» ¾î¶»°Ô ¶Ç °øºÎÇØ¾ß Çϳª?? ÇÏ°í °í¹ÎÇß¾ú½À´Ï´Ù.
±×·¯³ª ´ÙÇàÈ÷µµ XQL°ú Å« Â÷À̰¡ ¾ø´õ¶ó±¸¿ä.. À̵ÑÀÇ °ü°è°¡ ÀÖ±ä ÇÒ °ÍÀε¥.. Á¦°¡ ¾ÆÁ÷ ¹Ìó È®ÀÎÇÏÁö ¸øÇß½À´Ï´Ù.
³ªÁß¿¡ È®ÀÎµÇ¸é ´Ù½Ã ¾ð±ÞÇÏÁÒ.. Ȥ ¾Æ½Ã´Â ºÐÀº Á¦°Ô ¾Ë·ÁÁÖ½Ã¸é °í¸¿±¸¿ä..
¿À´Ãµµ ¿©ÀüÈ÷ ¼µÎ°¡ ±æ¾ú½À´Ï´Ù. ÀÚ.. ±×·³ ½ÃÀÛÇØ º¸µµ·Ï ÇÏÁÒ..
XPath Äõ¸® »ç¿ë
XPathÀÇ »ç¿ë ¿¹¸¦ ¸ÕÀú »ìÆìº¸ÁÒ..
/child::Customer[attribute::CustomerID="ALFKI"]
¿©±â¿¡¼ child´Â ÀÚ½ÄÀ» ³ªÅ¸³»´Â Ű¿öµåÀ̰í attribute´Â ¼Ó¼ºÀ» ³ªÅ¸³»´Â Ű¿öµåÀÔ´Ï´Ù.
±×¸®°í []´Â º¸Åë ÇÊÅͶó°í ÇÑ´Ù°í ÇÏ¿´ÁÒ.. Áï, Á¶°ÇÀ» ³ªÅ¸³À´Ï´Ù.
±×·³.. ¼Ó¼º CustomerID°¡ "ALFKI"ÀÎ <Customer>¿¤¸®¸ÕÆ®¸¦ ã¾Æ¶ó... °¡ µË´Ï´Ù.
¸Â³ª¿ä???
ÀÌ°É ÀϹÝÀûÀÎ ÇüÅ·Πº¯È¯ÇÏ¸é ´ÙÀ½Ã³·³ »ç¿ëÇϼŵµ °°Àº ³»¿ëÀÔ´Ï´Ù.
/Customer[@CustomerID="ALFKI"]
child::´Â ±âº»°ªÀ¸·Î ÀνĵDZ¸¿ä.. attribute::´Â @·Î ´ÜÃà½ÃÄѼ Ç¥ÇöÀÌ °¡´ÉÇÕ´Ï´Ù.
¶Ç´Ù¸¥ ¿¹¸¦ Çϳª º¼±î¿ä??
/child::Customer/child::Order[attribute::OrderID="1"]
´ÜÃàÇüÀ¸·Î Ç¥ÇöÇØ º¸¸é
/Customer/Order[@OrderID="1"]
À̰ÍÀº ¾î¶»°Ô ÇØ¼®ÇÒ ¼ö ÀÖÀ»±î¿ä?? Çѹø ÇØº¸¼¼¿ä..
<Customer>¿¤¸®¸ÕÆ®ÀÇ ÀÚ½Ä ¿¤¸®¸ÕÆ®ÀÎ <Order>¿¤¸®¸ÕÆ®¸¦ ã´Âµ¥ ±× ¼Ó¼º OrderID°¡ 1ÀÎ °Í¸¸ ã¾Æ¶ó...
ÀÚ!! ¾î¶»°Ô ´À³¦ÀÌ ¿À³ª¿ä??
/A/B ÀÇ °æ¿ì´Â <B> ¿¤¸®¸ÕÆ®°¡ ¹ÝȯµË´Ï´Ù. ±×·¯³ª
/A[B]ÀÇ °æ¿ì´Â <B>¸¦ Æ÷ÇÔÇϰí ÀÖ´Â <A>¿¤¸®¸ÕÆ®°¡ ¹ÝȯµË´Ï´Ù.
ÀÌ Â÷À̸¦ XPath¿¡¼´Â Àß ÀÌÇØÇÏ¼Å¾ß ÇÕ´Ï´Ù.
¿¹Á¦¸¦ °è¼Ó º¸µµ·Ï ÇÏÁÒ.. Áö±ÝºÎÅÍ´Â ´ÜÃàÇüÀ¸·Î »ç¿ëÇÕ´Ï´Ù.
/Customer[ContactName]
<ContactName> ¿¤¸®¸ÕÆ®¸¦ ÀÚ½ÄÀ¸·Î °¡Áö°í ÀÖ´Â <Customer>¿¤¸®¸ÕÆ®¸¦ ã¾Æ¶ó..
/Customer[not(ContactName)]
¾û.. not() ÇÔ¼ö°¡ »ç¿ëµÇ¾ú½À´Ï´Ù. À§ÀÇ °Í°ú ¹Ý´ë°¡ µÇ°ÚÁÒ..
<ContactName> ¿¤¸®¸ÕÆ®¸¦ ÀÚ½ÄÀ¸·Î °¡Áö°í ÀÖÁö ¾ÊÀº <Customer>¿¤¸®¸ÕÆ®¸¦ ã¾Æ¶ó..
/Customer[@CustomerID]
¼Ó¼º CustomerID¸¦ °¡Áö°í ÀÖ´Â <Customer>¿¤¸®¸ÕÆ®¸¦ ã¾Æ¶ó..
ÀÌ·± ½ÄÀ¸·Î ³ªÅ¸³¾ ¼ö ÀÖ½À´Ï´Ù. ½±ÁÒ... À̺κÐÀº ¾Æ¸¶ Á¦°¡ MSSQL °ÀÇÇÏ´Â ºÎºÐµé Áß¿¡¼ °¡Àå ½±°Ô ¹Þ¾ÆµéÀÏ ¼ö ÀÖÀ» °Ì´Ï´Ù.
±âÁ¸¿¡ ¿ì¸®°¡ »ç¿ëÇÏ´ø ¹æ½Ä°ú º° Â÷À̰¡ ¾ø±â ¶§¹®ÀÌÁÒ...
±×·¡µµ.. ¿ì¸®°¡ ¶Ç °á°ú¸¦ Á÷Á¢ º¸¸é¼ ÇØº¸´Â °Ô Áß¿äÇÏÁö ¾ÊÀ»·±Áö¿ä.. ±×·¡¼ Books Online¿¡ ÀÖ´Â ¿¹Á¦¸¦ °¡Áö°í ½Ç½ÀÇØ º¸µµ·Ï ÇÏÁÒ..
XPath¸¦ »ç¿ëÇϱâ À§Çؼ´Â ¸ÕÀú XDR ½ºÅ°¸¶¸¦ ¼±¾ðÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
±×·¡¼ ¿¹Á¦·Î ³ª¿ÍÀÖ´Â XDR ½ºÅ°¸¶¸¦ »ç¿ëÇϵµ·Ï ÇϰڽÀ´Ï´Ù. ÀÌ ¼Ò½º¸¦ º¸¸é ±â°¡Âý´Ï´Ù.. ³Ñ ±æ¾î¼... ~~
±×·¡µµ Áö³ ¹ø¿¡ ¹è¿î°É Åä´ë·Î ¾Æ´Â °Í¸¸ÀÌ¶óµµ ºÁµÎ¼¼¿ä.. ¹Ýµå½Ã..
ÀÌ ¿¹Á¦¸¦ ¸ðµÎ º»ÀÎ PC¿¡¼ Å×½ºÆ® ÇϽ÷Á¸é ÀÚ·á¸ðÀ½¿¡¼ ÇØ´ç ¼Ò½ºÆÄÀÏÀ» ¹Þ¾Æ¼ Template µð·ºÅ丮¿¡ º¹»çÇϼ¼¿ä.
±âº» XPath Äõ¸®
1. ÀÚ½Ä ¿¤¸®¸ÕÆ®¸¦ °Ë»öÇÏ´Â ¿¹Á¦ÀÔ´Ï´Ù.
/Employee
ÆÄÀϸí : Xpath1.xml
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:xpath-query mapping-schema="XpathSchema.xml">
/Employee
</sql:xpath-query>
</ROOT>
À§¿Í °°ÀÌ ÅÛÇø´À» ¸¸µé°í ´ÙÀ½Ã³·³ ½ÇÇàÇÏ¸é µË´Ï´Ù.
http://localhost/mini/template/Xpath1.xml
2. ¼ÕÀÚ ¿¤¸®¸ÕÆ®¸¦ °Ë»öÇÏ´Â ¿¹Á¦ÀÔ´Ï´Ù.
/Customer/Order
ÆÄÀϸí : Xpath2.xml
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:xpath-query mapping-schema="XpathSchema.xml">
/Customer/Order
</sql:xpath-query>
</ROOT>
½ÇÇàÇϸé...
http://localhost/mini/template/Xpath2.xml
ÀÌ·¸°Ô Çϸé <Order>¿¤¸®¸ÕÆ®°¡ ¸®Åϵ˴ϴÙ..
3. CustomerIDÀÇ ¼Ó¼º°ªÀÌ "ALFKI"ÀÎ <Customer> ¿¤¸®¸ÕÆ®¸¦ °Ë»öÇÏ´Â ¿¹Á¦ÀÔ´Ï´Ù.
/Customer[@CustomerID="ALFKI"]
ÆÄÀϸí : Xpath3.xml
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:xpath-query mapping-schema="XpathSchema.xml">
/Customer[@CustomerID="ALFKI"]
</sql:xpath-query>
</ROOT>
¶Ç ½ÇÇàÇØ º¼±î¿©??
http://localhost/mini/template/Xpath3.xml
±×·¯¸é ALFKIÀÇ <Cusotmer>¿¤¸®¸ÕÆ®¸¸ÀÌ ³ªÅ¸³³´Ï´Ù....
ÀÌ»óÀ¸·Î À§¿¡¼ ¼³¸íÇÑ ±âº» XPath Äõ¸®¸¦ »ç¿ëÇØ º¸¾Ò½À´Ï´Ù.
ÀÌÁ¦ºÎÅÍ´Â Á¶±Ý º¹ÀâÇÑ °ÍÀ» Çѹø »ç¿ëÇØ º¸µµ·Ï ÇÏÁÒ.. XPath¸¦ ´«¿¡ ÀÍÇô º¸¼¼¿ä.. ^^;;
Á¶°Ç ÁöÁ¤ XPath Äõ¸®
1. ¿©·¯°³ÀÇ Á¶°Ç ÁöÁ¤
/Customer[@CustomerID="ALFKI"]/Order[@OrderID="Ord-10643"]
ÆÄÀϸí : Xpath4.xml
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:xpath-query mapping-schema="XpathSchema.xml">
/Customer[@CustomerID="ALFKI"]/Order[@OrderID="Ord-10643"]
</sql:xpath-query>
</ROOT>
ÀÌ °æ¿ì´Â Äõ¸®°¡ »ó´çÈ÷ º¹ÀâÇÕ´Ï´Ù.
±×·¯³ª Â÷±Ù Â÷±Ù ÇØ¼®ÇØ º¸¸é ¾î·ÆÁö ¾Ê³×¿ä.. ÀÏ´Ü Á¶°ÇÀ» Á¦¿ÜÇϸé /Customer/OrderÀÔ´Ï´Ù.
Áï, <Order>¿¤¸®¸ÕÆ®°¡ ¸®Åϵ˴ϴÙ.
±×¸®°í Á¶°ÇÀ» º¸¸é ¼Ó¼º CustomerID°¡ "ALFKI"ÀÎ <Customer>Áß¿¡¼ OrderID°¡ "Ord-10643"ÀÎ <Order>¸¦ ã´Â °Ì´Ï´Ù.
ÀÌÇØ°¡ µÇÁÒ.... Àß º¸¼Å¿ä... ÇÔ ½ÇÇàÇØº¸ÁÒ.. Á¤¸» ±×°ÍÀÌ ¸®ÅϵǾú´ÂÁö..
http://localhost/mini/template/Xpath4.xml
°á°ú¸¦ º¸¸é OrderID°¡ "Ord-10643"ÀÎ <Order>¶ó ¸®ÅÏÀÌ µÇ¾úÁÒ.. ¹°·Ð À̰ÍÀº <Customer>ÀÇ ÀÚ½ÄÀ̱¸¿ä..
2. ¿¬¼Ó Á¶°Ç ÁöÁ¤
/Customer[@City="London"][@Fax]
ÆÄÀϸí : Xpath5.xml
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:xpath-query mapping-schema="XpathSchema.xml">
/Customer[@City="London"][@Fax]
</sql:xpath-query>
</ROOT>
°¥¼ö·Ï ¼Ò½º°¡ ÀÌ»óÇØÁý´Ï´Ù.. Çæ~~~
ÀÚ ÀÌ °æ¿ì¿¡ ¹ÝȯµÇ´Â °á°ú ¿¤¸®¸ÕÆ®´Â ¹«¾ùÀϱî¿ä?? ´ç±Ù... <Customer>ÀÔ´Ï´Ù.
Á¶°ÇÀ» º¸¸é¿ä?? ¼Ó¼º City°¡ "London"À̾î¾ß ÇÕ´Ï´Ù. ±×´ÙÀ½¿¡ ¶Ç Á¶°ÇÀÌ ÀÖ½À´Ï´Ù.
[@Fax]´Â ¹«¾ùÀ̳ÄÇϸé¿ä.. Fax¶ó´Â ¼Ó¼ºÀÇ °ªÀ» °¡Áö°í ÀÖ¾î¾ß ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù.
Áï, City°¡ "London"À̰í Fax¶õ ¼Ó¼ºÀ» Æ÷ÇÔÇϰí ÀÖ´Â <Customer>¿¤¸®¸ÕÆ®¸¦ ¸®ÅÏÇÏ´Â °Ì´Ï´Ù.
°á°ú¸¦ º¸ÁÒ...
http://localhost/mini/template/Xpath5.xml
Á¶°ÇÀ» ¸¸Á·ÇÏ´Â °í°´ÀÌ 5¸íÀÌ ÀÖ±º¿ä.. ±×ÃÝ..
ÀÌÁ¦ °¢Á¾ ¿¬»êÀÚ³ª ÇÔ¼ö¸¦ XPath¿¡ ÁöÁ¤ÇÏ´Â ¿¹¸¦ »ìÆì º¸°Ú½À´Ï´Ù.
¿¬»êÀÚ³ª ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â XPath Äõ¸®
1. °ü°è ¿¬»êÀÚ Àû¿ë
/Customer[Order/OrderDetail[@Quantity>5]]
ÀÌ°É ÅÛÇø´¿¡ Àû¿ëÇÏ·Á¸é >¸¦ ÅÂ±×·Î ÇØ¼®ÇÏÁö ¾Ê°Ô Çϱâ À§Çؼ >·Î º¯È¯ÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù.
ÆÄÀϸí : Xpath6.xml
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:xpath-query mapping-schema="XpathSchema.xml">
/Customer[Order/OrderDetail[@Quantity > 5]]
</sql:xpath-query>
</ROOT>
¿©±â¿¡¼ <Customer>, <Order>, <OrderDetail>ÀÇ ¼¼°¡Áö ¿¤¸®¸ÕÆ®°¡ ³ª¿É´Ï´Ù.
°á°ú·Î ¸®ÅϵǴ ¿¤¸®¸ÕÆ®´Â ¹«¾ùÀϱî¿ä??
´äÀº <OrderDetail>ÀÔ´Ï´Ù. ±×ÃÝ.. ÆÜ~~~~Á¹Áö ¸¶¼¼¿ä.....
<Customer> ¿¤¸®¸ÕÆ®°¡ ¸®Åϵȴٰí Çß½À´Ï´Ù. []´Â Á¶°ÇÀÌ°í ±× ¾ÕÀÇ °ÍÀÌ ¹ÝȯµÈ´Ù°í Çß¾úÁÒ..
±×¸®°í Àú´Â ÅÛÇø´¿¡¼ >·Î ÀÎÄÚµùÇØ¼ »ç¿ëÇß½À´Ï´Ù. ±Ùµ¥ ÀÎÄÚµùÀ» ÇÏÁö ¾Ê¾Æµµ °á°ú°¡ ³ª¿É´Ï´Ù.
±×·¯³ª ¿øÄ¢Àº ÀÎÄÚµùÇØÁÖ¾î¾ß ÇÕ´Ï´Ù.
°á°ú¸¦ º¸ÁÒ..
http://localhost/mini/template/Xpath6.xml
2. »ê¼ú ¿¬»êÀÚ Àû¿ë
/OrderDetail[@UnitPrice * @Quantity = 98]
ÆÄÀϸí : Xpath7.xml
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:xpath-query mapping-schema="XpathSchema.xml">
/OrderDetail[@UnitPrice * @Quantity = 98]
</sql:xpath-query>
</ROOT>
À̰ÍÀº UnitPrice ¼Ó¼º°ú Quantity ¼Ó¼ºÀÇ °öÀÌ 98ÀÎ <OrderDetail> ¿¤¸®¸ÕÆ®°¡ ¸®Åϵ˴ϴÙ.
http://localhost/mini/template/Xpath7.xml
¾î¶§¿ä.. °è¼Ó ÇØº¸´Ï °¨ÀÌ ÆÅÆÅ ¿ÀÁÒ.... µÎ¾î°³¸¸ ´õ ÇØº¸ÁÒ..
3. Çü º¯È¯ ÇÔ¼ö Àû¿ë
/Employee[number(@EmployeeID)=4]
ÆÄÀϸí : Xpath8.xml
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:xpath-query mapping-schema="XpathSchema.xml">
/Employee[number(@EmployeeID)=4]
</sql:xpath-query>
</ROOT>
number()¶õ ÇÔ¼ö°¡ »ç¿ëµÇ¾ú³×¿ä.. ¼ýÀÚ·Î ¹Ù²Ù¶ó´Â °Í°°ÁÒ..
http://localhost/mini/template/Xpath8.xml
¸¸¾à ¹®ÀÚ¿·Î º¯È¯ÇϰíÀÚ ÇÒ °æ¿ì¿¡´Â string()À» »ç¿ëÇÏ¸é µË´Ï´Ù.
4. BOOL ¿¬»êÀÚ Àû¿ë
/Customer[@CustomerID="ALFKI" or @CustomerID="ANATR"]
ÆÄÀϸí : Xpath9.xml
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:xpath-query mapping-schema="XpathSchema.xml">
/Customer[@CustomerID="ALFKI" or @CustomerID="ANATR"]
</sql:xpath-query>
</ROOT>
Áß°£¿¡ or ¿¬»êÀÚ°¡ »ç¿ëµÇ¾ú½À´Ï´Ù. µÎ °³ÀÇ <Customer>¿¤¸®¸ÕÆ®°¡ ¹ÝȯµË´Ï´Ù.
http://localhost/mini/template/Xpath9.xml
/Customer[not(Order)]
ÆÄÀϸí : Xpath10.xml
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:xpath-query mapping-schema="XpathSchema.xml">
/Customer[not(Order)]
</sql:xpath-query>
</ROOT>
ÀÌ °æ¿ì¿¡´Â <Order>¿¤¸®¸ÕÆ®¸¦ Æ÷ÇÔÇÏÁö ¾ÊÀº <Customer>¿¤¸®¸ÕÆ®¸¦ ¸®ÅÏÇÕ´Ï´Ù.
°á°ú¸¦ º¼±î¿ä??
http://localhost/mini/template/Xpath10.xml
ÀÌ °æ¿ì ´ÙÀ½°ú °°ÀÌ XPath¸¦ ¹Ù²Ù¾îµµ °°Àº °á°ú¸¦ ¹ÝȯÇÕ´Ï´Ù.
/Customer[Order=false()]
ÈÞ~~ ÀÌ·¸°Ô ¸¹Àº XPath Äõ¸®¿¡ ´ëÇØ¼ ¾Ë¾Æº¸¾Ò½À´Ï´Ù. ¿©±â¿¡ ¹°·Ð ÅÛÇø´ ½ÇÇà¿¡¼ ¹è¿ü´ø ¸Å°³º¯¼öµµ Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
±×°Ç Çѹø¾¿ ã¾Æ º¸½Ã±æ ¹Ù¶ó±¸¿ä...
XPath´Â XML¿¡ ÀÖ¾î¼ Áß¿äÇÑ À§Ä¡¸¦ Â÷ÁöÇϰí ÀÖ½À´Ï´Ù. ¼³»ç MSSQL¿¡ °ü½ÉÀÌ ¾ø´Ù ÇÏ´õ¶óµµ Àß ÀÐ¾î º¸½Ã±â ¹Ù¶ø´Ï´Ù. 2002/8/21 ¹Ì´Ï
|
|
|
|