ת²Ø£ºPerl ´¦ÀíXML XML::Parser::Expat
µ±ÔÚPerlÖÐʹÓÃXMLʱ£¬Äã»áÓн«½üÎå°Ù¸öCPANÄ£¿é¿ÉÒÔÑ¡Ôñ£¬Ã¿Ò»¸ö¶¼Ö§³ÖÕûºÏWeb·þÎñµÄ²»Í¬·½Ãæ¡£´ËÍ⣬PerlµÄºËÐÄ¿â°üÀ¨¶à¸öÖ§³ÖXMLµÄÄ£¿é¡£ÕâÆªÎÄÕ¾͹Ø×¢ÓÚÒ»¸ö×îÔçÆÚÇÒÉæ¼°×îÆµ·±µÄºËÐÄÄ£¿é£ºXML::Parser.
XML::½âÎöÆ÷ϵÁÐ
×î³õµÄPerl½âÎöÆ÷XML::Parser::ExpatÓÉLarry WallÔÚ¼¸Äêǰ±àд²¢ÓÉClark Cooper±£³ÖÑÓÐø¡£Ä£¿é×÷ΪExpat XML parserµÄ½çÃæÓÉJames ClarkÓÃCÓïÑÔ±àдÇÒÒѾ±»Ò»Ð©½Å±¾ÓïÑÔËù²ÉÓá£
ExpatÊÇÒ»¸öÒÔʼþΪ»ù´¡µÄ½âÎöÆ÷£¬Òâζ×ÅÌØ¶¨Ìõ¼þ´¥·¢´¦Àí¹¦ÄÜ¡£ÀýÈ磬һ¸ö¿ªÊ¼»ò½áβ±ê¼Ç½«´¥·¢Êʵ±µÄÓû§¶¨Òå×Ó³ÌÐò¡£XML::ParserÄ£¿éÔÚExpat¹¦ÄܵĻù´¡ÉÏΪÆÕͨӦÓÃËù½¨¹¹¡£
×¢ÒâExpatÔÚ½âÎö֮ǰ²»»áʹXMLÉúЧÇÒÔÚÓöµ½´íÎó³öÏÖʱ»áʧЧ¡£ÕâЩÏÞÖÆ»áʹXML::ParserÄ£¿éËٶȷdz£Ö®¿ì¡£
XML::Parser¼ò½é
ÈκÎÈ˶¼¿ÉÒÔÔÚPerlÖбàдһ¸öXML½âÎöÆ÷¡£±Ï¾¹ÄãÖ»ÊÇ´¦Àí¾ßÓÐÒÑÖª¸ñʽµÄÎı¾¡£µ«ÓÉÓÚXML::ParserÄ£¿éÊÇÓÃC±àдµÄ£¬Ëû±ÈÈκÎÄã¿ÉÒÔʵÏֵĴ¿PerlÓ¦ÓÃÒª¸üÓÐЧµÄ¶à¡£¶øÇÒ¼ÈÈ»ËûÒѾ±»±àд³öÀ´£¬Äã¾Í¿ÉÒÔ°Ñʱ¼ä»¨ÔÚÆäËû¸üÓÐÓõÄÊÂÇéÉÏ¡£
XML::ParserµÄExpatµÄ¹¦ÄÜÔÊÐíÄ㶨ÒåËùʹÓõĽâÎöÆ÷µÄÑùʽ¡£×îÆÕ±éʹÓõÄÑùʽÊÇTreeºÍStream£¬Tree´¦ÀíXMLµÄÊäÈ룬´´½¨º¬ÓÐÎļþÖеÄÔªËØºÍÊý¾ÝµÄ³ÉÌ×Êý×飬ÕâÑùÄã¾Í¿ÉÒÔ°´ÕÕÄãµÄÒâÔ¸¿ØÖÆÕâ¸ö½á¹¹¡£Stream½«·ÖÎöÐÐΪ»®·Ö²ã¼¶£¬ÔÚÒ»¸öʼþµÄ¿ªÊ¼×ö´¦Àí£¬ÒªÊ¹ÓÃStream£¬Äã±ØÐëÔÚÄã¶ÔÄ£¿é×öÀýʾ²¢½«ÆäÓëÃèÊöʼþ³öÏÖʱÈçºÎ´¦ÀíµÄ×Ó³ÌÐòÏà¹ØÁªÊ±¶¨Òå´¦ÀíÆ÷¡£
ÆäËüÑùʽ»¹°üÀ¨£ºSub£¬ÔÊÐíÄãÌØ¶¨µØ¶ÔÒ»ÖÖXML±ê¼Ç¶¨ÒåÆä¹¦ÄÜ¡£Debug£¬½«ÎļþÏÔʾδ±ê×¼Êä³ö¡£Object£¬ÓëTreeÏàËÆµ«ÊÇ·µ»Ø¶ÔÏó¡£ÄãÒ²¿ÉÒÔͨ¹ýÔÚXML::ParserÀàÖж¨ÒåÒ»¸ö×ÓÀàÀ´É趨һ¸ö¿ÍÖÆÑùʽ¡£
Ò»¸öÀý×Ó
Õâ¸öÀý×ÓÖУ¬ÎÒ½«Ê¹ÓÃXML::ParserÀàÀ´´´½¨Ò»¸öStream½âÎö¡£ÎÒ½«´ø³öÒ»¸ö½«XMLÎļþ½âÎöΪ±ê×¼Êä³öµÄ¼òµ¥½Å±¾³ÌÐò£¬Äã¿ÉÒÔÔÚ±íAÖп´µ½½Å±¾³ÌÐò(xmlparse.pl)£¬ÔÚ±íBÖп´µ½XMLÎļþ(data.xml)¡£ÕâÀÓÉÓÚÕâÊÇÒ»¸öÃüÁîÐнű¾£¬ÎÒÑ¡Ôñ²»½âÎöURLÔªËØ¡£ÒªÖ´ÐÐÕâ¸ö½Å±¾³ÌÐò£¬ÔÚÃüÁîÌáʾÏ£¬¼üÈ룺
perl xmlparse.pl data.xml
½Å±¾ÏȲÎÕÕÊʵ±µÄÄ£¿é£º
use XML::Parser;
¡¡
½Ó×Å£¬´ÓÃüÁîÌáʾÊäÈëץȡÎļþ£º
my $xmlfile = shift;
die "Cannot find file "$xmlfile""
unless -f $xmlfile;
½Å±¾ÉèÖÃһЩ³õʼ±äÁ¿£º
$count = 0;
$tag = "";
È»ºóÊÇ´´½¨½âÎöÆ÷ʵÀý£º
my $parser = new XML::Parser;
ÏÖÔÚÎÒÃǶ¨Òåʼþ´¦
Ïà¹ØÎĵµ£º
function getkeyvalue(s_keyname,s_keystr)
s_keybegin="<"+s_keyname+">"
s_keyend="</"+s_keyname+">"
s_i_begin=instr(s_keystr,s_keybegin)
s_i_end=instr(s_keystr,s_keyend)
if s_i_end<=s_i_begin+len(s_keybegin) then
getkeyvalue=""
exit function
else
getkeyvalue=mid(s_k ......
дÕâÆªÎÄÕµÄÔÒòÓÐÈçϼ¸µã£º1)C++±ê×¼¿âÖÐûÓвÙ×÷XMLµÄ·½·¨£¬ÓÃC++²Ù×÷XMLÎļþ±ØÐëÊìϤһÖÖº¯Êý¿â£¬LIBXML2ÊÇÆäÖÐÒ»ÖÖºÜÓÅÐãµÄXML¿â£¬¶øÇÒËüͬʱ֧³Ö¶àÖÖ±à³ÌÓïÑÔ£»2)LIBXML2¿âµÄTutorialдµÃ²»Ì«ºÃ£¬ÓÈÆäÊDZàÂëת»»µÄ²¿·Ö£¬²»ÊÊÓÃÓÚÖÐÎıàÂëµÄת»»£»3)ÍøÉϵĴó¶àÊý¹ØÓÚLibxml2µÄ½éÉܽö½öÊÇ·ÒëÁË×Ô´øµÄ×ÊÁÏ£¬Ã»ÓÐÏêϸ½é ......
public sealed class XmlHelper
{
public static void Serialize<T>(T obj,string fileName)
{
TextWriter writer = new StreamWriter(fileName);
try
{
XmlSerializer ser = new XmlSerializer(typeof(T));
......
×÷Õß: J. Andrew Schafer
ÕâÆªÎÄÕ¼ÙÉèÄã¶Ô XML, XSLT, ºÍ C# ÊìϤ
ÏÂÔØÕâÆªÎÄÕµÄÔ´´úÂë: XMLC.exe (76KB)
ÒëÕß˵Ã÷£ºÕâÆªÎÄÕÂÊǺÜÔçÒÔǰ¾Í·¢±íÁË£¬ËüÌṩµÄÔ´´úÂëÊÇ»ùÓÚ VS.net ²âÊ԰棨RTM ºÍ Beta 2£©µÄ¡£
ÕªÒª
C# ÔÊÐí¿ª·¢ÈËÔ±ÔÚÔ´´úÂëÖвåÈëXML×¢ÊÍ£¬ÕâÔÚ¶àÈËÐ×÷¿ª·¢µÄʱºòÏÔµÃÌØ±ðÓÐÓᣠ......
XML DOM
¡¡¡¡XML DOM ¶¨ÒåÁË·ÃÎʺʹ¦Àí XML ÎĵµµÄ±ê×¼·½·¨¡£
¡¡¡¡XML DOM ÊÇ XML Document Object Model µÄËõд£¬¼´ XML Îĵµ¶ÔÏóÄ£ÐÍ¡£
¡¡¡¡Ò»¡¢DOM ¼ò½é
¡¡¡¡Ê²Ã´ÊÇ DOM£¿
¡¡¡¡DOM ÊÇ W3C£¨ÍòÎ¬ÍøÁªÃË£© µÄÍÆ¼ö±ê×¼¡£
¡¡¡¡DOM ¶¨ÒåÁË·ÃÎÊÖîÈç XML ºÍ XHTML ÎĵµµÄ±ê×¼¡£
¡¡¡¡“W3C Îĵµ¶ÔÏóÄ£ÐÍ£¨DOM£©ÊÇÒ»¸ ......