Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

´¦Àí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 XQuery

--XQuery »ùÓÚÏÖÓÐµÄ XPath ²éѯÓïÑÔ£¬²¢Ö§³Ö¸üºÃµÄµü´ú¡¢¸üºÃµÄÅÅÐò½á¹ûÒÔ¼°¹¹Ôì±ØÐèµÄ XML µÄ¹¦ÄÜ¡£
--1.ÉùÃ÷Ò»¸ö xml ÀàÐ͵ıäÁ¿£¬È»ºóʹÓà xml Êý¾ÝÀàÐ굀 query() ·½·¨À´²éѯ´Ë±äÁ¿
DECLARE @x xml
SET @x = '<ROOT><a>111</a></ROOT>'
SELECT @x.query('/ROOT/a')
--²éÕÒÊôÐÔaid=20µÄa½ ......

XMLNameSpace XMLÃüÃû¿Õ¼ä

XML ÃüÃû¿Õ¼äÌṩÁËÒ»ÖÖ±ÜÃâÔªËØÃüÃû³åÍ»µÄ·½·¨¡£
ÃüÃû¿Õ¼äÊôÐÔÒ»°ã·ÅÖÃÔÚÔªËØµÄ¿ªÊ¼±ê¼Ç´¦£¬ÆäʹÓÃÓï·¨ÈçÏÂËùʾ:
xmlns:namespace-prefix="namespace"£¬
ÀýÈ磺xmlns:f="http://www.w3schools.com/furniture"
W3C ÃüÃû¹æ·¶ÉùÃ÷ÃüÃû¿Õ¼ä±¾Éí¾ÍÊÇÒ»¸öͳһ×ÊÔ´±êʾ·û£¬Uniform Resource Identifier (URI)¡£
asp.net¶ÁÈ¡X ......

DTD£¬XML SchemaºÍRelax NGµÄ±È½Ï¼°Ï໥ת»¯£¡

±È½Ï£º
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 ......

php»ñÈ¡xmlÊôÐÔÖµ

<!-- xml¸ñʽ
<foo xmlns="test">
<bar attr='a'></bar>
<bar attr='b'></bar>
<bar attr='c'></bar>
</foo>
-->
<?php
$dom = new DOMDocument();
if (!$dom->load('attr.xml'))
{
echo "load books.xml failed!<br>";
re ......

StringºÍXmlÖ®¼äµÄת»»¡¢StringתInputStream

ͨ³£ÔÚ²Ù×÷xmlµÄʱºò£¬¶¼ÊÇͨ¹ýinputstream£¨ºÜ¶àÇé¿öÏÂÊÇFileInputStream£©À´¶ÁÈëxml²¢×ªÎªdomµÄ£¬ºÜ¶àÈË»áÓöµ½ÕâÖÖÇé¿öÊý¾Ý²»ÊÇ´ÓÎļþ¶ÁÈëµÄ¶øÊÇ´ÓStringÖÐÈ¡µÃµÄ
ÓÚÊÇ»áʹÓÃ
InputStream in = new ByteArrayInputStream (str.getBytes());À´È¡µÃinputstream £¬µ«ÊÇÕâÖÖInputStreamÖÐÊý¾Ý±»×ª³ÉÁËbyteÊý×飬ËùÒÔתdom ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ