´¦ÀíXMLµÄз½Ê½——LINQ to XML
ºÎνLINQ? LINQ¼´.NET ÓïÑÔ¼¯³É²éѯ(.NET Language-Integrated Query (LINQ) Framework),Ϊ.NET¼Ü¹¹ÖеÄÖØÒª×é³É²¿·Ö¡£LINQϵÁм¼ÊõÌṩÁËÕë¶Ô¶ÔÏó(LINQ)¡¢¹ØÏµÊý¾Ý¿â(LINQ to SQL)ºÍXML(LINQ to XML)µÄÒ»ÖÂÐÔ²éѯÌåÑé¡£ ʲôÊÇLINQ to XML? LINQ to XML ʹÓÃ×îеÄ.NET FrameworkÓïÑÔ¹¦ÄÜ£¬Ï൱ÓÚ¸üкÍÖØÐÂÉè¼ÆµÄÎĵµ¶ÔÏóÄ£ÐÍ(DOM)XML±à³Ì½Ó¿Ú¡£Ê¹ÓÃËü£¬¿ÉÒÔÔÚ.NET Framework±à³ÌÓïÑÔÖд¦ÀíXML¡£ Ëü½«XMLÎĵµÖÃÓÚÄÚ´æÖУ¬ÕâÒ»µãºÜÏñÎĵµ¶ÔÏóÄ£ÐÍ(DOM)¡£Äã¿ÉÒÔ²éѯºÍÐÞ¸ÄXMLÎĵµ£¬Ð޸ĺ󣬿ÉÒÔ½«ÆäÁí´æÎªÎļþ£¬Ò²¿ÉÒÔ½«ÆäÐòÁл¯È»ºóͨ¹ýÍøÂç·¢ËÍ¡£µ«ÊÇ£¬LINQ to XMLÓëDOM²»Í¬£ºËüÌṩһÖÖеĶÔÏóÄ£ÐÍ£¬ÕâºÃËÆÒ»ÖÖ¸üÇáÁ¿µÄÄ£ÐÍ£¬Ê¹ÓÃÒ²¸ü·½±ã£¬ÕâÖÖÄ£ÐÍÀûÓÃÁËVisual C# 2008ÔÚÓïÑÔ·½ÃæµÄ¸Ä½ø¡£ LINQ to XML ×îÖØÒªµÄÓÅÊÆÊÇËüÓëLINQµÄ¼¯³É¡£ÓÉÓÚʵÏÖÁËÕâÒ»¼¯³É£¬ËùÒÔ£¬¿ÉÒÔ¶ÔÄÚ´æXMLÎĵµ±àд²éѯ£¬ÒÔ¼ìË÷ÔªËØµÄÊôÐԺͼ¯ºÏ¡£LINQ to XMLµÄ²éѯ¹¦ÄÜÓëXPathºÍXQuery(Á½ÖÖÀÏʽµÄXML±ê×¼¼ìË÷»úÖÆ)¾ßÓпɱÈÐÔ¡£Visual C# 2008¼¯³ÉLINQºó£¬¿ÉÌṩ¸üÇ¿µÄÀàÐÍ»¯¹¦ÄÜ¡¢±àÒëʱ¼ì²éºÍ¸Ä½øµÄµ÷ÊÔÆ÷Ö§³Ö¡£
ÈçºÎʹÓÃLINQ²éѯ? ËùÓеÄLINQ²éѯ²Ù×÷¶¼¿ÉÒÔÓÉÈý¸ö²»Í¬µÄ²Ù×÷×é³É£º 1¡¢»ñÈ¡Êý¾ÝÔ´¡£ 2¡¢´´½¨²éѯ¡£ 3¡¢Ö´Ðвéѯ¡£ Êý¾ÝÔ´¿ÉÒÔΪÈÎÒâ¿É²éѯÀàÐÍ£¬¼´Ö§³ÖIEnumerable»òIEnumerable½Ó¿Ú¼°ÆäÅÉÉú½Ó¿ÚµÄÀàÐÍ¡£ int[] numbers = new int[7]{0,1,2,3,4,5,6}; var numQuery = from num in numbers where (num % 2) == 0 select num; foreach(int num in numQuery) { console.Write("{0,1} ",num); } ÉÏÀýʵÏÖ´ÓÒ»¸öintÊý×éÖмìË÷³öËùÓÐżÊý¡£ÆäÖÐÊý¾ÝԴΪnumbersÊý×é¡£ ¸Ã²éѯ±í´ïʽ°üº¬Èý¸ö×Ó¾ä(Èç¹û¶ÔSQLÊìϤ£¬Ôò²»»áİÉú£¬µ«ÊÇÓï¾ä˳ÐòÊDz»Ò»ÑùµÄ)£ºfrom¡¢whereºÍselect¡£from ×Ó¾äÖ¸¶¨Êý¾ÝÔ´£¬where ×Ó¾äÓ¦ÓÃɸѡÆ÷£¬select ×Ó¾äÖ¸¶¨·µ»ØµÄÔªËØÀàÐÍ¡£ ×¢Ò⣬var numQuery =...Óï¾äÖ»Êǹ¹½¨Ò»¸ö²éѯ±í´ïʽ£¬Ö´ÐÐʱ²¢²»»áÁ¢¼´¼ìË÷Êý¾Ý£¬µ±Ö´Ðе½ÏÂÃæµÄforeachÓï¾äʱ£¬²Å»á¼ìË÷Êý¾Ý¡£ µ±È»£¬²¢²»ÊDZØÐëʹÓÃforeach²ÅÄܼìË÷³ö½á¹û£¬Õâ¸öÊǿɿصģº ¶ÔÓھۺϺ¯ÊýÈçCount¡¢Max¡¢Average¡¢FirstµÈ£¬ÕâЩ²éѯ½ö½ö·µ»Øµ¥¸öÖµ¶ø·Ç¼¯ºÏ£¬´Ëʱ¾Í²»ÓÃʹÓÃforeachÀ
Ïà¹ØÎĵµ£º
XML ÃüÃû¿Õ¼äÌṩÁËÒ»ÖÖ±ÜÃâÔªËØÃüÃû³åÍ»µÄ·½·¨¡£
ÃüÃû¿Õ¼äÊôÐÔÒ»°ã·ÅÖÃÔÚÔªËØµÄ¿ªÊ¼±ê¼Ç´¦£¬ÆäʹÓÃÓï·¨ÈçÏÂËùʾ:
xmlns:namespace-prefix="namespace"£¬
ÀýÈ磺xmlns:f="http://www.w3schools.com/furniture"
W3C ÃüÃû¹æ·¶ÉùÃ÷ÃüÃû¿Õ¼ä±¾Éí¾ÍÊÇÒ»¸öͳһ×ÊÔ´±êʾ·û£¬Uniform Resource Identifier (URI)¡£
asp.net¶ÁÈ¡X ......
²»µÃ²»×ÔÒÑдһ¸ö.XML
µÄ²Ù×÷һֱûÓÐÓùý.ÏÂÃæÊÇ×Ô¼ºËѼ¯µÄXML²Ù×÷Àà
DOMDocumentÏà¹ØµÄÄÚÈÝ.
ÊôÐÔ:
Attributes ´æ´¢½ÚµãµÄÊôÐÔÁбí(Ö»¶Á)
childNodes
´æ´¢½ÚµãµÄ×Ó½ÚµãÁбí(Ö»¶Á)
dataType ·µ»Ø´Ë½ÚµãµÄÊý¾ÝÀàÐÍ
Definition ÒÔDTD»òXMLģʽ¸ø³öµÄ½ÚµãµÄ¶¨Òå(Ö»¶Á)
Doctype Ö¸¶¨ÎĵµÀàÐͽڵã(Ö»¶Á)
doc ......
×Ô¼º×öÏîÄ¿ÐèÒªÓÃÖÇÄܿͻ§¶Ë·¢²¼£¬ÎÒÓöµ½Á˸öÎÊÌâ¾ÍÊdzÌÐòÖеÄxmlÎļþÔÚ·¢²¼ºóÕÒ²»µ½ÁË¡£¾¹ýÔÚÍøÉϲéѯºÍ×Ô¼ºµÄÊÔÑé·¢ÏÖÕâÁ½¸ö·½·¨¶¼¿ÉÒÔ½â¾öÕâ¸öÎÊÌâ¡£
·½·¨1
ÓÒ¼üwinUIÏîÄ¿£¬·¢²¼-¡µÓ¦ÓóÌÐòÎļþ....->Ñ¡ÔñxmlÎļþ-¡µ·¢²¼×´Ì¬¸ÄΪ“Êý¾ÝÎļþ(×Ô¶¯)”
&nb ......
±È½Ï£º
1. DTD
a. ×îÔçµÄXML Contraint
b. ÓÉW3C¶¨Òå
C. ·Ç³£¼òµ¥
2. XML Schema
a. ĿǰӦÓÃ×î¹ãµÄXML Contraint
b. ÓÉW3C¶¨Òå
c. ºÜÁé»î£¬µ«·Ç³£¸´ÔÓ
3. Relax NG
a. ÊǸöÒ°º¢×Ó£¬²»ÊÇÓÉW3C¶¨Òå
b. ·Ç³£·Ç³£¼òµ¥Ö±¹Û
c. ¶ÔÓÚÐèҪƵ·±¶¨ÒåContraintµÄEngineer·Ç³£ºÏÊÊ
Ï໥ת»¯£º
1. XML Document -> DTD ......