´¦Àí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À
Ïà¹ØÎĵµ£º
--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½ ......
C#ÐòÁл¯xml
¹Ø¼ü²½Ö裺
XmlSerializer xSerializer = new XmlSerializer(typeof(MyObj));
StringWriter sWriter = new StringWriter(CultureInfo.InvariantCulture);
XmlTextWriter xTextWriter = new XmlTextWriter(sWriter);
......
½â¶ÁPHP DOMDocumentÔÚ½âÎöXMLÎļþÖеÄ×÷ÓÃ
http://developer.51cto.com 2009-12-02 10:39 ØýÃû Áø³Ç²©¿Í ÎÒÒªÆÀÂÛ(0)
PHP DOMDocumentµÄ¹¦Äܷdz£Ç¿´ó£¬ÎÒÃÇÔÚÕâÆªÎÄÕÂÖн«½éÉÜÈçºÎÕýÈ·µÄÔËÓÃPHP DOMDocumentÀ´½øÐÐXMLÎļþµÄ½âÎö¡£Ï£Íû¶ÔÓÖÐèÒªµÄÅóÓÑÓÐËù°ïÖú¡£
ÔÚʹÓÃPHP¶ÔXMLÎļþ½øÐнâÎöµÄʱ ......
<script>
var flags ;
if(window.XMLHttpRequest) {
XMLHttpReq = new XMLHttpRequest(); //firefoxÏÂÖ´ÐдËÓï¾ä
}
else if(window.ActiveXObject) {
try{
XMLHttpReq = new Acti ......