¾«¶Ì¸ßЧµÄXML½âÎöÆ÷,´¿Cµ¥Ò»³ÌÐò,Ó¦ÓÃÓÚÒøÐеĹúË°¿âÐкáÏòÁªÍø½Ó¿ÚϵͳÖÐ,Îȶ¨¿É¿¿,ÔËÐÐËٶȷɿì,·ÇÏàÓ¦µÄJAVA³ÌÐò¿É±È.ÒÔÏÂΪ´ó²¿·ÖÔ´Âë:
/* Copyright (c) 2005 wzs */
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <varargs.h>
#include "xmlparse.h"
/*xmlµÃµ½½ÚµãÃûÖµ, ·µ»Ø: 1½Úµã±êʶÃû¿ªÍ·, 2½Úµã±êʶÃû½áβ, 3 ×¢ÊÍ , 4ÔªËØÊý¾Ý <=0ÓдíÎó */
#define XVAL_NBEGIN 1
#define XVAL_NEND 2
#define XVAL_NOTE 3
#define XVAL_DATA 4
#define XVAL_TAG 5 /* ¿Õ±êÖ¾ */
#define XVAL_NONE 0
#define XVAL_ERROR -1
static int isSpace(int c) /* ÊÇ¿Õ·ñ */
{
switch (c) {
case 0x20:
case 0xD:
case 0xA:
case 0x9:
return 1;
}
return 0;
}
static int isNameTChar(int c) /* ÓÐЧµÄÃû³ÆÇ°µ¼·û */
{
return (c>='A' && c<='Z') || (c>='a' && c<='z') || (c=='_') ;
}
int EqXString (XSTRING *dxs, XSTRING *sxs ) /* X×Ö´®¸³Öµ ......
¾«¶Ì¸ßЧµÄXML½âÎöÆ÷,´¿Cµ¥Ò»³ÌÐò,Ó¦ÓÃÓÚÒøÐеĹúË°¿âÐкáÏòÁªÍø½Ó¿ÚϵͳÖÐ,Îȶ¨¿É¿¿,ÔËÐÐËٶȷɿì,·ÇÏàÓ¦µÄJAVA³ÌÐò¿É±È.ÒÔÏÂΪ´ó²¿·ÖÔ´Âë:
/* Copyright (c) 2005 wzs */
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <varargs.h>
#include "xmlparse.h"
/*xmlµÃµ½½ÚµãÃûÖµ, ·µ»Ø: 1½Úµã±êʶÃû¿ªÍ·, 2½Úµã±êʶÃû½áβ, 3 ×¢ÊÍ , 4ÔªËØÊý¾Ý <=0ÓдíÎó */
#define XVAL_NBEGIN 1
#define XVAL_NEND 2
#define XVAL_NOTE 3
#define XVAL_DATA 4
#define XVAL_TAG 5 /* ¿Õ±êÖ¾ */
#define XVAL_NONE 0
#define XVAL_ERROR -1
static int isSpace(int c) /* ÊÇ¿Õ·ñ */
{
switch (c) {
case 0x20:
case 0xD:
case 0xA:
case 0x9:
return 1;
}
return 0;
}
static int isNameTChar(int c) /* ÓÐЧµÄÃû³ÆÇ°µ¼·û */
{
return (c>='A' && c<='Z') || (c>='a' && c<='z') || (c=='_') ;
}
int EqXString (XSTRING *dxs, XSTRING *sxs ) /* X×Ö´®¸³Öµ ......
Ò»¡¢XMLÖ»ÓÐÒ»¸öTableµÄÇé¿ö
£¨1£©userInfo.xml
<?xml version="1.0" encoding="utf-8" ?>
<UserInfo>
<user userName ="ÕÅÈý" sex ="ÄÐ" dept="²ÆÎñ²¿ÃÅ"/>
<user userName ="ÀîËÄ" sex ="Å®" dept="×ÊѶ²¿ÃÅ"/>
<user userName ="ÍõÎå" sex ="ÄÐ" dept="Éú²ú²¿ÃÅ"/>
</UserInfo>
£¨2£©¶ÁÈ¡×ÊÁÏ
&nb ......
Ò»¡¢XMLÖ»ÓÐÒ»¸öTableµÄÇé¿ö
£¨1£©userInfo.xml
<?xml version="1.0" encoding="utf-8" ?>
<UserInfo>
<user userName ="ÕÅÈý" sex ="ÄÐ" dept="²ÆÎñ²¿ÃÅ"/>
<user userName ="ÀîËÄ" sex ="Å®" dept="×ÊѶ²¿ÃÅ"/>
<user userName ="ÍõÎå" sex ="ÄÐ" dept="Éú²ú²¿ÃÅ"/>
</UserInfo>
£¨2£©¶ÁÈ¡×ÊÁÏ
&nb ......
<
<
СÓÚ
>
>
´óÓÚ
&
&
ºÍºÅ
'
'
µ¥ÒýºÅ
"
"
ÒýºÅ
×¢ÊÍ£ºÔÚ XML ÖУ¬Ö»ÓÐ×Ö·û "<" ºÍ "&" ȷʵÊÇ·Ç·¨µÄ¡£´óÓÚºÅÊǺϷ¨µÄ£¬µ«ÊÇÓÃʵÌåÒýÓÃÀ´´úÌæËüÊÇÒ»¸öºÃÏ°¹ß¡£ ......
Ò»¡¢WDDXµÄ²úÉú
WDDX£¬Ó¢ÎÄÈ«³ÆΪWeb Distributed Data
Exchange£¬ÊÇÒ»ÖÖ»ùÓÚXMLµÄWeb·Ö²¼Ê½Êý¾Ý½»»»¼¼Êõ¡£WDDX×îÔçÊÇÃÀ¹úAllaire¹«Ë¾µÄ³ÌÐò¼¼ÊõÉè¼ÆʦSimeon
SimeonovΪÁ˽â¾öColdFusionÖÐÉæ¼°µ½µÄ·Ö²¼¼ÆËãÎÊÌâ¶ø½¨Á¢µÄ¡£Ëæ׏¤×÷µÄ¿ªÕ¹£¬WDDXÖð½¥Ñݱä³ÉΪһÖÖ¿ÉÓÃÓÚ²»Í¬µÄÓ¦Óû·¾³Öн»»»¸´ÔӵĽṹ»¯Êý¾ÝµÄÊý¾Ý½»»»¼¼Êõ¡£Ó¦ÓÃWDDX£¬²»Í¬µÄWebϵͳ֮¼ä¿ÉÒÔ·½±ãµØ½øÐпçÓïÑÔ¡¢¿çϵͳ¡¢¿çƽ̨µÄ¸´ÔÓÊý¾ÝµÄ½»»»Óë¹²Ïí£¬¶ÔÓÚÌá¸ßWebÕ¾µãµÄÕûÌå¼ÛÖµÒÔ¼°ÐÖúWeb¿ª·¢ÈËÔ±¸ü¼Ó·½±ãµØ¹¹½¨WebϵͳÓÐ×ÅÖØÒªµÄÓ¦ÓÃÒâÒå¡£
¶þ¡¢WDDX¹¤×÷»úÀí¼°×é³É
¼òµ¥µØ˵£¬WDDXÊÇͨ¹ýÔÚ²»Í¬Ó¦Óû·¾³ÏµĽṹ»¯Êý¾ÝÖ®¼ä½¨Á¢Ò»¸ö"½»»»ÇÅÁº"---“XMLÖмä¼þ”Íê³ÉÊý¾Ý½»»»µÄ¡£ÒòΪ¼¸ºõËùÓÐWebÁìÓò±ê×¼µÄ¿ª·¢»·¾³£¨ÈçColdFusion, Perl, ASP, Java, #,
PHPµÈ£©¶¼°üº¬ÓÐ×Ô¼ºÄÚÔÚµÄÊý¾Ý½á¹¹£¬ËùÒÔWDDXΪÿһÖÖÓïÑÔÌṩÁËһЩģ¿é.
ÕâЩģ¿é¼È¿ÉÒÔ×Ô¶¯µØ½«ÕâЩÄÚÔÚµÄÊý¾Ý½á¹¹·Òë³ÉÒ»ÖÖ¾«Á¶µÄ»ùÓÚXMLµÄÃèÊö£¬¼´ÐòÁл¯(serialized)£»Í¬ÑùÒ²¿ÉÒÔ½«»ùÓÚXMLµÄÃèÊöת»»ÎªÄ³
ÖÖÓïÑÔ»·¾³ÏµÄÊý¾Ý½á¹¹£¬¼´·´ÐòÁл¯(deserialized)¡£ÕâÑù£¬Á½¸ö²»Í¬Ó¦Óû ......
//pugxml.h
///////////////////////////////////////////////////////////////////////////////
//
// Pug XML Parser - Version 1.0002
// --------------------------------------------------------
// Copyright (C) 2003, by Kristen Wegner (kristen@tima.net)
// Released into the Public Domain. Use at your own risk.
// See pugxml.xml for further information, history, etc.
// Contributions by Neville Franks (readonly@getsoft.com).
//
///////////////////////////////////////////////////////////////////////////////
#if !defined(_PUGXML_)
#define _PUGXML_
#pragma once
//#define PUGOPT_MEMFIL //Uncomment to enable memory-mapped file parsing support.
//#define PUGOPT_NONSEG //Uncomment to enable non-destructive (non-segmenting) parsing support.
#ifdef PUGOPT_MEMFIL
# ifndef PUGOPT_NONSEG
# define PUGOPT_NONSEG //PUGOPT_MEMFIL implies PUGOPT_NONSEG.
# endif
#endif
#include <iostream>
#include <ostream>
#include <string>
#if defined(PUGOPT_MEM ......
//ÕâÊÇÌí¼Ó
private void button1_Click(object sender, EventArgs e)
{
string s = "Persist Security Info=False;Integrated Security=SSPI;database=IIntegration;server=(local)";
using (SqlConnection conn = new SqlConnection(s))
{
using (SqlCommand cmd1 = new SqlCommand("INSERT testxml VALUES(@ID, @XmlData)", conn))
{
conn.Open();
cmd ......
//ÕâÊÇÌí¼Ó
private void button1_Click(object sender, EventArgs e)
{
string s = "Persist Security Info=False;Integrated Security=SSPI;database=IIntegration;server=(local)";
using (SqlConnection conn = new SqlConnection(s))
{
using (SqlCommand cmd1 = new SqlCommand("INSERT testxml VALUES(@ID, @XmlData)", conn))
{
conn.Open();
cmd ......