ÒªÖªµÀ´Ó¸ù½ÚµãÒ»Ö±ÏÂÀ´µÄÏà¶Ô·¾¶²ÅÄÜÈ·¶¨XpathµÄд·¨¡£
/root/<½Úµã1>/<½Úµã2>//<@ÊôÐÔ>
XpathÊǹ¦ÄܺÜÇ¿´óµÄ£¬µ«ÊÇÒ²ÊÇÏà¶Ô±È½Ï¸´ÔÓµÄÒ»Ãż¼Êõ£¬×îºÃ»¹Êǵ½²©¿ÍÔ°ÉÏÃæȥרÃÅÕÒһЩרҵµÄÌû×ÓÀ´¿´Ò»¿´£¬ÏÂÃæÊÇһЩ¼òµ¥µÄXpathÓï·¨ºÍÒ»¸öʵÀý£¬Ìṩ¸øÄã²Î¿¼Ò»ÏÂ
<?xml version="1.0" encoding="ISO-8859-1"?>
<catalog>
<cd country="USA">
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<price>10.90</price>
</cd>
<cd country="UK">
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<price>9.90</price>
</cd>
<cd country="USA">
<title>Greatest Hits</title>
<artist>Dolly Parton</artist>
<price>9.90</price> ......
Ò»¸ö¶¨ÒåEmailµÄÀý×Ó
<?xml version="1.0">
<!DOCTYPE message[
<!ELEMENT message(header,body,signature,footer)> --¶¨ÒåÁËmessageµÄ×ÓÔªËØ
<!ELEMENT header(date,from,to,subject,banner)> --header»¹ÓÐ×ÓÔªËØ
<!ELEMENT footer ANY>
<!ELEMENT body (#PCDATA)>
]>
ÔªËصÄÃüÃû£ºÔªËØÃûµÄµÚÒ»¸ö×Öĸ±ØÐëÊÇ×Öĸ¡¢»òÏ»®Ïߣ¨_£©¡¢»òðºÅ£¨£º£©£¬
ºó¸ú×Öĸ¡¢Êý×Ö¡¢¾äºÅ£¨.£©¡¢Ã°ºÅ¡¢Ï»®Ïß¡¢Á¬½áºÅ£¨-£©µÄ×éºÏ£¬²¢ÇÒ²»ÄÜ°üº¬¿Õ°×·û£¬²»ÄÜÒÔ“xml”¿ªÍ·¡£
Ò»¡¢ÔªËØÉùÃ÷£º
<!ELEMENT name content>
ÆäÖÐ,nameÊÇÒ»¸ö±ê×¼xml±ê¼ÇµÄÃû×Ö¡£±ÈÈçdict,cityµÈ£¬contentÓÉÒÔϼ¸ÖÖ¹¹³É£º
1.EMPTY--¶¨Òå¿ÕÔªËØ£¬¸ÃÔªËØÖ»ÄÜÓÐÊôÐÔ¶ø²»»áÓÐ×Ö·ûÊý¾Ý»ò×ÓÔªËØ ±ÈÈç<img src="aaa.jpg"/>»òÕß<img src="aaa.jpg"></img>
2.ANY--¿ÉÒÔÊÇÈκÎÄÚÈÝ (³ýÁ˸ùÔªËØ£¬ÆäËü×îºÃ²»ÒªÊ¹ÓÃ)
3.#PCDATAÀàÐÍ--²»°üº¬ÆäËü×ÓÔªËضøÖ»°üº¬×Ö·ûÊý¾Ý(Êý×Ö×ÖĸºÍ·ûºÅ¶¼¿ÉÒÔ£¬µ«²»°üÀ¨× ......
Ò»¡¢ÒýÑÔ
Èç½ñ£¬ÔÚSQL Server 2005ÖУ¬XML³ÉΪµÚÒ»Á÷µÄÊý¾ÝÀàÐÍ¡£½èÖúÓÚ»ùÓÚXMLģʽµÄÇ¿ÀàÐÍ»¯Ö§³ÖºÍ»ùÓÚ·þÎñÆ÷¶ËµÄXMLÊý¾ÝУÑ鹦ÄÜ£¬ÏÖÔÚ
£¬¿ª·¢Õß¿ÉÒÔ¶Ô´æ´¢µÄXMLÎĵµ½øÐÐÇáËɵØÔ¶³ÌÐ޸ġ£×÷ΪÊý¾Ý¿â¿ª·¢Õߣ¬Ðí¶àÈ˶¼±ØÐë´óÁ¿µØÉæ¼°XML¡£
Èç½ñ£¬ÔÚSQL Server 2005ÖУ¬ÄãÄÜÒÔÒ»ÖÖеÄÊý¾ÝÀàÐ͵ÄÐÎʽ°ÑXML´æ´¢ÔÚÊý¾Ý¿âÖС£
ÊÂʵÉÏ£¬ÔÚSQL Server 2000ÖоÍÒѾ°üÀ¨ÁËһЩXMLÌØÕ÷¡£ÆäÖУ¬×î¹Ø¼üµÄÌØÕ÷ÊÇʹÓÃFOR XMLÓï¾äÒÔXMLÐÎʽ·µ»Ø½á¹û¡£SQL Server 2005
µÄ¹¦ÄÜÔòÃ÷ÏÔ²»Í¬¡£ÔÚSQL Server 2005ÖУ¬XMLÊÇÒ»ÖÖÕæÕýµÄÊý¾ÝÀàÐÍ£»ÕâÒâζ×Å£¬Äã¿ÉÒÔʹÓÃXML×÷Ϊ±íºÍÊÓͼÖеÄÁУ¬XML¿ÉÒÔÓÃÓÚT-SQLÓï
¾äÖлò×÷Ϊ´æ´¢¹ý³ÌµÄ²ÎÊý¡£ÏÖÔÚ£¬Äã¿ÉÒÔÖ±½ÓÔÚÊý¾Ý¿âÖд洢¡¢²éѯºÍ¹ÜÀíXMLÎļþ¡£
¸üÖØÒªµÄÊÇ£¬ÏÖÔÚÄ㻹Äܹ涨ÄãµÄXML±ØÐë×ñ´ÓµÄģʽ¡£
ÔÚSQL Server 2005ÖУ¬³ýÁËÌṩ»úÖÆÒÔУÑéÄãµÄÊý¾Ý¿âÖеÄXMLÀàÐÍÖ®Í⣬Ëü»¹ÔÊÐíÄãÃèÊöÒª±»´æ´¢µÄ¸´ÔÓÊý¾ÝÀàÐͲ¢ÇÒÌṩһ¸öÒýÇæÀ´
Ç¿ÖÆÊ©¼ÓÕâЩ¹æÔò¡£
¶þ¡¢Ê¹ÓÃXMLÊý¾ÝÀàÐÍ
Æäʵ£¬XMLÊý¾ÝÀàÐÍÓëSQL ServerÖеÄÆäËüÊý¾ÝÀàÐͲ¢²»´æÔÚ¸ù±¾µÄÇø±ð¡£Äã¿ÉÒÔ°ÑËüÓÃÔÚʹÓÃÈκÎÆÕͨSQLÊý¾ÝÀàÐ͵ĵط½¡£ÀýÈ磬ÏÂÁÐ
Óï¾ä´´½¨Ò»¸öXML±äÁ¿²¢ÓÃÒ»¸öXMLÌ ......
Ò»¡¢ÒýÑÔ
Èç½ñ£¬ÔÚSQL Server 2005ÖУ¬XML³ÉΪµÚÒ»Á÷µÄÊý¾ÝÀàÐÍ¡£½èÖúÓÚ»ùÓÚXMLģʽµÄÇ¿ÀàÐÍ»¯Ö§³ÖºÍ»ùÓÚ·þÎñÆ÷¶ËµÄXMLÊý¾ÝУÑ鹦ÄÜ£¬ÏÖÔÚ
£¬¿ª·¢Õß¿ÉÒÔ¶Ô´æ´¢µÄXMLÎĵµ½øÐÐÇáËɵØÔ¶³ÌÐ޸ġ£×÷ΪÊý¾Ý¿â¿ª·¢Õߣ¬Ðí¶àÈ˶¼±ØÐë´óÁ¿µØÉæ¼°XML¡£
Èç½ñ£¬ÔÚSQL Server 2005ÖУ¬ÄãÄÜÒÔÒ»ÖÖеÄÊý¾ÝÀàÐ͵ÄÐÎʽ°ÑXML´æ´¢ÔÚÊý¾Ý¿âÖС£
ÊÂʵÉÏ£¬ÔÚSQL Server 2000ÖоÍÒѾ°üÀ¨ÁËһЩXMLÌØÕ÷¡£ÆäÖУ¬×î¹Ø¼üµÄÌØÕ÷ÊÇʹÓÃFOR XMLÓï¾äÒÔXMLÐÎʽ·µ»Ø½á¹û¡£SQL Server 2005
µÄ¹¦ÄÜÔòÃ÷ÏÔ²»Í¬¡£ÔÚSQL Server 2005ÖУ¬XMLÊÇÒ»ÖÖÕæÕýµÄÊý¾ÝÀàÐÍ£»ÕâÒâζ×Å£¬Äã¿ÉÒÔʹÓÃXML×÷Ϊ±íºÍÊÓͼÖеÄÁУ¬XML¿ÉÒÔÓÃÓÚT-SQLÓï
¾äÖлò×÷Ϊ´æ´¢¹ý³ÌµÄ²ÎÊý¡£ÏÖÔÚ£¬Äã¿ÉÒÔÖ±½ÓÔÚÊý¾Ý¿âÖд洢¡¢²éѯºÍ¹ÜÀíXMLÎļþ¡£
¸üÖØÒªµÄÊÇ£¬ÏÖÔÚÄ㻹Äܹ涨ÄãµÄXML±ØÐë×ñ´ÓµÄģʽ¡£
ÔÚSQL Server 2005ÖУ¬³ýÁËÌṩ»úÖÆÒÔУÑéÄãµÄÊý¾Ý¿âÖеÄXMLÀàÐÍÖ®Í⣬Ëü»¹ÔÊÐíÄãÃèÊöÒª±»´æ´¢µÄ¸´ÔÓÊý¾ÝÀàÐͲ¢ÇÒÌṩһ¸öÒýÇæÀ´
Ç¿ÖÆÊ©¼ÓÕâЩ¹æÔò¡£
¶þ¡¢Ê¹ÓÃXMLÊý¾ÝÀàÐÍ
Æäʵ£¬XMLÊý¾ÝÀàÐÍÓëSQL ServerÖеÄÆäËüÊý¾ÝÀàÐͲ¢²»´æÔÚ¸ù±¾µÄÇø±ð¡£Äã¿ÉÒÔ°ÑËüÓÃÔÚʹÓÃÈκÎÆÕͨSQLÊý¾ÝÀàÐ͵ĵط½¡£ÀýÈ磬ÏÂÁÐ
Óï¾ä´´½¨Ò»¸öXML±äÁ¿²¢ÓÃÒ»¸öXMLÌ ......
value·½·¨
µ±Äã²»Ïë½âÊÍÕû¸ö²éѯµÄ½á¹û¶øÖ»ÏëµÃµ½Ò»¸ö±êÁ¿ÖµÊ±£¬Õâ¸övalue·½·¨ÊǺÜÓаïÖúµÄ¡£Õâ¸övalue·½·¨ÓÃÓÚ²éѯXML²¢ÇÒ·µ»ØÒ»¸öÔ×ÓÖµ¡£
Õâ¸övalue·½·¨µÄÓï·¨ÈçÏ£º
value(XQuery£¬datatype)
½èÖúÓÚvalue·½·¨£¬Äã¿ÉÒÔ´ÓXMLÖеõ½µ¥¸ö±êÁ¿Öµ¡£Îª´Ë£¬Äã±ØÐëÖ¸¶¨XQueryÓï¾äºÍÄãÏëÒªËü·µ»ØµÄÊý¾ÝÀàÐÍ£¬²¢ÇÒÄã¿ÉÒÔ·µ»Ø³ýÁËXMLÊý
¾ÝÀàÐÍÍâµÄÈκÎÊý¾ÝÀàÐÍ¡£ÀýÈ磬Èç¹ûÄãÏëµÃµ½Ã¿Ò»¸öС×éÖеĵÚÒ»¸öͶÇòÊÖµÄÃû×Ö£¬Äã¿ÉÒÔ±àдÈçÏÂÐÎʽµÄ²éѯÓï¾ä£º
½øÐÐÒ»´Î²éѯÒԵõ½µ¥¸öÖµ
ÒÔÏÂΪÒýÓõÄÄÚÈÝ£º
SELECT TeamDoc.value(
'(/Team/Players/Pitcher/@name)[1]'£¬
'nvarchar(max)')
AS FirstPitcher
from Team
ÔÚÿһ¸öС×éµÄµÚÒ»¸öͶÇòÊֵıêÁ¿ÖµÖеÄÕâ¸ö²éѯ½á¹û·µ»ØÖµÈçÏ£º
ÒÔÏÂΪÒýÓõÄÄÚÈÝ£º
FirstPitcher
------------------------------
John Smoltz
(1 row(s) affected)
×¢Ò⣬queryºÍvalue·½·¨Ö®¼äµÄ²»Í¬ÔÚÓÚ£¬query·½·¨·µ»ØÒ»¸öXMLÊý¾ÝÀàÐÍ-Ëü°üº¬²éѯµÄ½á¹û£»¶øvalue·½·¨·µ»ØÒ»¸ö´øÓвéѯ½á¹ûµÄ·Ç
XMLÊý¾ÝÀàÐÍ¡£ÁíÍ⣬value·½·¨½öÄÜ·µ»Øµ¥¸öÖµ(»ò±êÁ¿Öµ)¡£Èç¹ûÄãÊÔͼ´´½¨Ò»¸öʹÓÃvalue·½·¨·µ»Ø¶àÓÚÒ»¸öÖµµÄXQuery±í´ïʽ£¬Ä㽫µÃµ½Ò»
¸ö´íÎó¡£
mo ......
value·½·¨
µ±Äã²»Ïë½âÊÍÕû¸ö²éѯµÄ½á¹û¶øÖ»ÏëµÃµ½Ò»¸ö±êÁ¿ÖµÊ±£¬Õâ¸övalue·½·¨ÊǺÜÓаïÖúµÄ¡£Õâ¸övalue·½·¨ÓÃÓÚ²éѯXML²¢ÇÒ·µ»ØÒ»¸öÔ×ÓÖµ¡£
Õâ¸övalue·½·¨µÄÓï·¨ÈçÏ£º
value(XQuery£¬datatype)
½èÖúÓÚvalue·½·¨£¬Äã¿ÉÒÔ´ÓXMLÖеõ½µ¥¸ö±êÁ¿Öµ¡£Îª´Ë£¬Äã±ØÐëÖ¸¶¨XQueryÓï¾äºÍÄãÏëÒªËü·µ»ØµÄÊý¾ÝÀàÐÍ£¬²¢ÇÒÄã¿ÉÒÔ·µ»Ø³ýÁËXMLÊý
¾ÝÀàÐÍÍâµÄÈκÎÊý¾ÝÀàÐÍ¡£ÀýÈ磬Èç¹ûÄãÏëµÃµ½Ã¿Ò»¸öС×éÖеĵÚÒ»¸öͶÇòÊÖµÄÃû×Ö£¬Äã¿ÉÒÔ±àдÈçÏÂÐÎʽµÄ²éѯÓï¾ä£º
½øÐÐÒ»´Î²éѯÒԵõ½µ¥¸öÖµ
ÒÔÏÂΪÒýÓõÄÄÚÈÝ£º
SELECT TeamDoc.value(
'(/Team/Players/Pitcher/@name)[1]'£¬
'nvarchar(max)')
AS FirstPitcher
from Team
ÔÚÿһ¸öС×éµÄµÚÒ»¸öͶÇòÊֵıêÁ¿ÖµÖеÄÕâ¸ö²éѯ½á¹û·µ»ØÖµÈçÏ£º
ÒÔÏÂΪÒýÓõÄÄÚÈÝ£º
FirstPitcher
------------------------------
John Smoltz
(1 row(s) affected)
×¢Ò⣬queryºÍvalue·½·¨Ö®¼äµÄ²»Í¬ÔÚÓÚ£¬query·½·¨·µ»ØÒ»¸öXMLÊý¾ÝÀàÐÍ-Ëü°üº¬²éѯµÄ½á¹û£»¶øvalue·½·¨·µ»ØÒ»¸ö´øÓвéѯ½á¹ûµÄ·Ç
XMLÊý¾ÝÀàÐÍ¡£ÁíÍ⣬value·½·¨½öÄÜ·µ»Øµ¥¸öÖµ(»ò±êÁ¿Öµ)¡£Èç¹ûÄãÊÔͼ´´½¨Ò»¸öʹÓÃvalue·½·¨·µ»Ø¶àÓÚÒ»¸öÖµµÄXQuery±í´ïʽ£¬Ä㽫µÃµ½Ò»
¸ö´íÎó¡£
mo ......
<?xml version="1.0" encoding="gb2312" ?>
<?xml-stylesheet type="tet/css" href="mystyle.css" ?>
<%@ page errorPage="error.jap" %>
<%@ page contentType="text/xml" %>
<realmarid>
»ÊÂí»¨Ãû²á
<athlete>
<name>Æë´ïÄÚ</name>
<country>·¨¹ú</country>
<age>32</age>
<telephone>124252432</telephone>
<date>The date is <%=new java.util.Date()%></date>
</athlete>
<athlete>
<name>ÀͶû</name>
<country>Î÷°àÑÀ</country>
<age>28</age>
<telephone>1243432</telephone>
<date>The date is <%=new java.util.Date()%></date>
</athlete>
<athlete>
<name>±´¿ËººÄ·</name>
<country>Ó¢¹ú</country>
<age>28</age>
<telephone>1243432</telephone>
<date>The date is <%=new java.util.Date ......
<?xml version="1.0" encoding="gb2312" ?>
<?xml-stylesheet type="tet/css" href="mystyle.css" ?>
<%@ page errorPage="error.jap" %>
<%@ page contentType="text/xml" %>
<realmarid>
»ÊÂí»¨Ãû²á
<athlete>
<name>Æë´ïÄÚ</name>
<country>·¨¹ú</country>
<age>32</age>
<telephone>124252432</telephone>
<date>The date is <%=new java.util.Date()%></date>
</athlete>
<athlete>
<name>ÀͶû</name>
<country>Î÷°àÑÀ</country>
<age>28</age>
<telephone>1243432</telephone>
<date>The date is <%=new java.util.Date()%></date>
</athlete>
<athlete>
<name>±´¿ËººÄ·</name>
<country>Ó¢¹ú</country>
<age>28</age>
<telephone>1243432</telephone>
<date>The date is <%=new java.util.Date ......
xmlÎļþ:
<?xml version="1.0" encoding="utf-8" ?>
<bookstore>
<book>
<title lang="eng">Harry Potter</title>
<price>29.99</price>
</book>
<book>
<title lang="eng">Learning XML</title>
<price>39.98</price>
</book>
<bookstore>
<title lang="eng">Learning C#</title>
<price>55.23</price>
</bookstore>
<item name="1">µÚÒ»¸öitem</item>
<item name="2">
<item name="1">Õâ¸ö½áµã(1)</item>
<item name="2">Õâ¸ö½áµã(2)</item>
<book>
<title lang="cn">Learni ......
xmlÎļþ:
<?xml version="1.0" encoding="utf-8" ?>
<bookstore>
<book>
<title lang="eng">Harry Potter</title>
<price>29.99</price>
</book>
<book>
<title lang="eng">Learning XML</title>
<price>39.98</price>
</book>
<bookstore>
<title lang="eng">Learning C#</title>
<price>55.23</price>
</bookstore>
<item name="1">µÚÒ»¸öitem</item>
<item name="2">
<item name="1">Õâ¸ö½áµã(1)</item>
<item name="2">Õâ¸ö½áµã(2)</item>
<book>
<title lang="cn">Learni ......