´¦Àí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À
Ïà¹ØÎĵµ£º
Ò»°ãÐÂÊÖͨ³£Ö»ÊÇʹÓÃÀàËƵÄXerces,
TinyXMLÖ®ÀàµÄXML½âÎöxml£¬ÕâÖÖ·½Ê½Êµ¼ÊÉϺÜÀË·Ñʱ¼ä£¬×Ô¼º±àдºÜ¶à´úÂëÒ²ÈÝÒ׳ö´í¡£ÒòΪ£¬ËûÃǾ³£ÒªÐ´Ò»¸öXML¶ÔÏóEntityµÄÀ࣬²¢¸½×ÅÒ»¶Ñ¶ÔÏó½âÎöµÄcode¡£¹¤×÷Á¿±È½Ï´ó¡£Ê¹ÓÃXML
Schema¹¤¾ß£¬XSDÉè¼Æ¹¤¾ß£¬È»ºóͨ¹ý¹¤¾ßÉú³ÉEntityClassºÍPaser
class¡£ÎÒ²»ÖªµÀÕâÖÖ¼¼ÊõÈ·ÇеÄÆðÔ ......
ǶÈëʽGUI FTK½éÉÜ(3)-XML½çÃæÃèÊöÓïÑÔ
תÔØʱÇë×¢Ã÷³ö´¦ºÍ×÷ÕßÁªÏµ·½Ê½
ÎÄÕ³ö´¦£ºhttp://www.limodev.cn/blog
×÷ÕßÁªÏµ·½Ê½£ºÀîÏȾ² <xianjimli at hotmail dot com>
ÓÃXMLÀ´ÃèÊö½çÃ棬C/C++дÄÚ²¿Âß¼£¬Óýű¾ÓïÑÔÀ´½ººÏ½çÃæºÍÄÚ²¿Âß¼¡£FTKÕýÊÇ»ùÓÚÕâÖÖ˼ÏëÀ´Éè¼ÆµÄ£¬ËùÒÔËü×ÔÈ»»áÌṩ XML½çÃæÃèÊö¹¦ÄÜ£¬ÔÚ ......
Óà PHP ¶ÁÈ¡ºÍ±àд XML DOM
ʹÓà DOM ¿â¡¢SAX ½âÎöÆ÷ºÍÕýÔò±í´ïʽ
ÎĵµÑ¡Ïî
´òÓ¡±¾Ò³
½«´ËÒ³×÷Ϊµç×ÓÓʼþ·¢ËÍ
¼¶±ð£º Öм¶
Jack Herrington (jack_d_herrington@codegeneration.net), ¸ß¼¶Èí¼þ¹¤³Ìʦ, "Code Generation Network"
2006 Äê 2 ÔÂ 06 ÈÕ
ÓÐÐí¶à¼¼Êõ¿ÉÓÃÓÚÓà 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 ......
ͨ³£ÔÚ²Ù×÷xmlµÄʱºò£¬¶¼ÊÇͨ¹ýinputstream£¨ºÜ¶àÇé¿öÏÂÊÇFileInputStream£©À´¶ÁÈëxml²¢×ªÎªdomµÄ£¬ºÜ¶àÈË»áÓöµ½ÕâÖÖÇé¿öÊý¾Ý²»ÊÇ´ÓÎļþ¶ÁÈëµÄ¶øÊÇ´ÓStringÖÐÈ¡µÃµÄ
ÓÚÊÇ»áʹÓÃ
InputStream in = new ByteArrayInputStream (str.getBytes());À´È¡µÃinputstream £¬µ«ÊÇÕâÖÖInputStreamÖÐÊý¾Ý±»×ª³ÉÁËbyteÊý×飬ËùÒÔתdom ......