Ê×ÏÈдһ¸öhtmlÒ³Ãæuserxmlajax.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Óû§Ð£ÑéajaxʵÀý</title>
<!-- ajax·½Ê½Ï²»ÐèҪʹÓÃ±íµ¥À´½øÐÐÊý¾ÝÌá½»£¬Òò´Ë²»ÓÃд±íµ¥±êÇ©form -->
<!-- ajax·½Ê½²»ÐèÒªnameÊôÐÔ£¬ÐèÒªÒ»¸öidÊôÐÔ -->
<script type="text/javascript" src="js/validatexmlajax.js"></script>
</head>
<body>
Óû§ÃûУÑéAJAXʵÀý£¬ÇëÊäÈëÓû§Ãû£º</br>
<input type="text" id="userName"><br>
<input type="button" value="¼ì²é" onclick="validatexmlajax()">
<!--Õâ¸ödivÓÃÓÚ´æ·Å·þÎñÆ÷·µ»ØµÄÐÅÏ¢£¬¿ªÊ¼Îª¿Õ-->
<!--idÊôÐÔ¶¨ÒåÊÇΪÁËÀûÓÃdomµÄ·½Ê½ÕÒµ½Ä³Ò»½Úµã£¬½øÐвÙ×÷-->
  ......
Ê×ÏÈдһ¸öhtml userxmljquery.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Óû§Ð£ÑéajaxʵÀý</title>
<!-- ajax·½Ê½Ï²»ÐèҪʹÓÃ±íµ¥À´½øÐÐÊý¾ÝÌá½»£¬Òò´Ë²»ÓÃд±íµ¥±êÇ©form -->
<!-- ajax·½Ê½²»ÐèÒªnameÊôÐÔ£¬ÐèÒªÒ»¸öidÊôÐÔ -->
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/validatexmljquery.js"></script>
</head>
<body>
Óû§ÃûУÑéAJAXʵÀý£¬ÇëÊäÈëÓû§Ãû£º</br>
<input type="text" id="userName"><br>
<input type="button" value="¼ì²é" onclick="validatexmljquery()">
<!--Õâ¸ödivÓÃÓÚ´æ·Å·þÎñÆ÷·µ»ØµÄÐÅÏ¢£¬¿ªÊ¼Îª¿Õ-->
&nb ......
À©Õ¹Struts2--×Ô¶¨ÒåStringºÍXML¸ñʽµÄResult
struts2ËäÈ»¼Ì³ÐÁËwebworkÓÅÐãµÄMVC·ÖÀ룬¿ÉÊÇÓкܶàµØ·½ÈÃÈË°Ù˼²»µÃÆä½â£¡×îÈÃÈËÀëÆ×µÄÊÇ£¬·µ»ØµÄ½á¹û¼¯ÖоÓȻûÓÐ
String£¬xmlÕâÁ½Öַdz£³£ÓõÄÀàÐÍ¡£»¹ÊÇ×Ô¼º¶¯ÊÖ£¬·áÒÂ×ãʳ£º
µÚÒ»ÖÖ·½Ê½£ºÊ¹ÓÓPlainText Result”
ÏÈ¿´¹Ù·½Îĵµ¶Ôplain text½á¹ûµÄ¶¨Ò壺“A result that send the content out as
plain text. Usefull typically when needed to display the raw content of
a JSP or Html file for example.”ÕâÊÇÒ»¸ö´¿³¶µ°µÄ˵·¨¡£¡£¡£Ã²ËƸоõÖ»ÄÜ·µ»ØjspÒ³ÃæËƵģ¬×îÆðÂëËûÎóµ¼ÁËÎÒ¡£
ÆäʵʹÓÓPlainText Result” £¬·µ»ØµÄ½á¹ûÊÇδ½øÐиñʽºÍ±àÂ붨ÒåµÄ×Ö·û´®
¡£
ʲôÒâ˼£¿¾ÍÀàËÆÓÚ“FreeMarker Result”
£¬·µ»ØÒ»¸ö*.ftl¸ñʽµÄÄ£°å£¬ÄãÍêÈ«¿ÉÒÔÔÚ*.ftlдstring£¬ÄÇô½á¹û¾ÍÊÇstring£»Ò²¿ÉÒÔÔÚÀïÃæдxml£¬ÄÇô½á¹û¾ÍÊÇxml¡£
¾ÙÀýÈçÏ£º
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<! ......
ÔÚSQL Server2005ÖÐÓÐFOR XML Ó÷¨£¬¿ÉÒÔ½²Ò»¸ö±í×÷Ϊһ¸ö×ֶΡ£
ÎÒµÄÉè¼ÆÏë·¨Ö÷ÒªÊÇÓÃÔÚ1¶Ô¶àµÄ¹ØϵÖбí¶ÁÈ¡µÄÎÊÌâ¡£
±íA ±íB
ÔÚAÖÐÓÐÒ»Ìõ¼Ç¼¶øÔÚBÖÐÓжàÌõ¼Ç¼¿ÉÒÔ²ÎÕÕÏÂÃæµÄд·¨£º£¨ÎÒµÄÏîÄ¿ÖÐÓõ½µÄ£¬ÐÞ¸ÄÁË×Ö¶ÎÖ÷ÒªÊÇÑÝʾÓã©
select A.*,
(SELECT a, CAST(G_Univalence AS NVARCHAR(48)) AS G_Univalence,
--×¢ÒâÁôÏÂËûµÄÒâÒåÖ»ÊÇmoney×Ö¶ÎÔÚfor xmlÖÐËü²ÉÓÿÆѧ¼ÆÊý·¨ÏÔʾ,ÔÚÓ¦ÓÃÖв»ºÃ´¦Àí
from B WHERE B.CB_ID = A.BP_ID FOR XML RAW,TYPE,ROOT('GrainConstraint')) AS GrainConstraint
--ʹÓÃTYPE·µ»Ø xml×Ö¶ÎÀàÐÍ
from A
ÔÚºǫ́£¬Ê¹ÓÃSqlDataReader¶ÁÈ¡xml×Ö¶Î,GetSqlXml()£¬²ÎÕÕÏÂÃæµÄ´úÂë.
public static bool ToDataTable(SqlXml sxSource, DataTable dt)
{
XmlReader xmlReader = sxSource.CreateReader();
string tempName;
int nColumnIndex;
......
ÔÚSQL Server2005ÖÐÓÐFOR XML Ó÷¨£¬¿ÉÒÔ½²Ò»¸ö±í×÷Ϊһ¸ö×ֶΡ£
ÎÒµÄÉè¼ÆÏë·¨Ö÷ÒªÊÇÓÃÔÚ1¶Ô¶àµÄ¹ØϵÖбí¶ÁÈ¡µÄÎÊÌâ¡£
±íA ±íB
ÔÚAÖÐÓÐÒ»Ìõ¼Ç¼¶øÔÚBÖÐÓжàÌõ¼Ç¼¿ÉÒÔ²ÎÕÕÏÂÃæµÄд·¨£º£¨ÎÒµÄÏîÄ¿ÖÐÓõ½µÄ£¬ÐÞ¸ÄÁË×Ö¶ÎÖ÷ÒªÊÇÑÝʾÓã©
select A.*,
(SELECT a, CAST(G_Univalence AS NVARCHAR(48)) AS G_Univalence,
--×¢ÒâÁôÏÂËûµÄÒâÒåÖ»ÊÇmoney×Ö¶ÎÔÚfor xmlÖÐËü²ÉÓÿÆѧ¼ÆÊý·¨ÏÔʾ,ÔÚÓ¦ÓÃÖв»ºÃ´¦Àí
from B WHERE B.CB_ID = A.BP_ID FOR XML RAW,TYPE,ROOT('GrainConstraint')) AS GrainConstraint
--ʹÓÃTYPE·µ»Ø xml×Ö¶ÎÀàÐÍ
from A
ÔÚºǫ́£¬Ê¹ÓÃSqlDataReader¶ÁÈ¡xml×Ö¶Î,GetSqlXml()£¬²ÎÕÕÏÂÃæµÄ´úÂë.
public static bool ToDataTable(SqlXml sxSource, DataTable dt)
{
XmlReader xmlReader = sxSource.CreateReader();
string tempName;
int nColumnIndex;
......
def getText(self,nodelist):
rc=""
for node in nodelist:
if node.nodeType == node.TEXT_NODE or node.nodeType == node.CDATA_SECTION_NODE:
rc = rc + node.data
return rc
def parseXML(self,requesturl,xml):
dom = minidom.parse(requesturl)
for node in dom.getElementsByTagName('category'):
xml.append({
'categoryid': self.getText(node.getElementsByTagName("categoryid")[0].childNodes),
'categoryname': self.getText(node.getElementsByTagName("categoryname")[0].childNodes)
})
Ö÷º¯Êý£º
xml=[]
self.parseXML(self.file_path,xml) ......
def getText(self,nodelist):
rc=""
for node in nodelist:
if node.nodeType == node.TEXT_NODE or node.nodeType == node.CDATA_SECTION_NODE:
rc = rc + node.data
return rc
def parseXML(self,requesturl,xml):
dom = minidom.parse(requesturl)
for node in dom.getElementsByTagName('category'):
xml.append({
'categoryid': self.getText(node.getElementsByTagName("categoryid")[0].childNodes),
'categoryname': self.getText(node.getElementsByTagName("categoryname")[0].childNodes)
})
Ö÷º¯Êý£º
xml=[]
self.parseXML(self.file_path,xml) ......
¡¡¡¡ÔÚÉÏһƪÎÄÕÂÖУ¬ÎÒÃÇÌÖÂÛÁËÈçºÎͨ¹ýjavascript´ÓÒ»¸öÔ¶³ÌXMLÎļþÖÐÈ¡µÃÊý¾Ý¡£ÔÚÕâƪÎÄÕÂÖУ¬ÎÒÃǽ«Ñ§»áÔõÑù¶ÔÊý¾Ý×÷¸ü¸´ÔӵĴ¦Àí¡£×÷Ϊһ¸öʾÀý£¬ÎÒÃÇ»á×¼±¸Ò»×éXMLÊý¾Ý£¬½«Êý¾Ý·Ö¸î³É¶ÀÁ¢µÄƬ¶Ï²¢ÒÔ²»Í¬µÄ·½Ê½Õ¹Ê¾ÕâЩƬ¶Ï£¨È¡¾öÓÚËüÃÇÊÇÈçºÎ±»±êʶµÄ£©¡£
¡¡¡¡ÕâƪÎÄÕÂÊǽ¨Á¢ÔÚÉÏһƪÎÄÕÂÖй¹ÔìµÄʾÀý´úÂëµÄ»ù´¡Ö®ÉÏ£¬ËùÒÔÈç¹ûÄã²»ÄÜÀí½âÎÒÃÇÏÖÔڵĴúÂ룬Äã¿ÉÒԻعýÍ·È¥¶ÁµÚһƪÎÄÕ£¨sheneyan×¢£º¾ÍÔÚÉÏÃ棩¡£
¿ªÊ¼¡«
¡¡¡¡ÈÃÎÒÃÇ¿ªÊ¼ÎÒÃǵĵÚÒ»²½£º¹¹ÔìXML¡£ÎÒÃÇ×¼±¸Ð´Ò»¸öXMLÎĵµ£¬Ëü×éÖ¯ÁËһϵÁÐ×¼±¸ÈÃjavascript´¦ÀíµÄÊý¾Ý£¬ËùÒÔÎÒÃǽ«Ò»Æð×é֯һЩ½ÚµãºÍ×ӽڵ㣨»òÕߣ¬ÔªËغÍ×ÓÔªËØ£©¡£ÔÚÕâ¸öÀý×ÓÀÎÒÃǽ«Ê¹ÓÃһЩ¼ÒÍ¥³èÎïµÄÃû×Ö£º
<?xml version="1.0" encoding="UTF-8"?>
<data>
<pets>
<pet>è</pet>
<pet>¹·</pet>
<pet>Óã</pet>
</pets>
</data>
¡¡¡¡ÔÚÉÏÃ棬ÎÒÃÇÓÐÕâ¸öXMLÉùÃ÷£¨±êÃ÷Õâ¸öÎĵµÊÇÒ»¸öXML 1.0 Îĵµ£¬Ê¹ÓÃUTF-8±àÂ룩£¬Ò»¸ö¸ùÔªËØ£¨<data>£©½«ÏÂÃæËùÓеÄÔªËØ×éºÏÔÚÒ»Æð£¬Ò»¸ö<pets>ÔªËØ×éÖ ......
¡¡¡¡ÔÚÉÏһƪÎÄÕÂÖУ¬ÎÒÃÇÌÖÂÛÁËÈçºÎͨ¹ýjavascript´ÓÒ»¸öÔ¶³ÌXMLÎļþÖÐÈ¡µÃÊý¾Ý¡£ÔÚÕâƪÎÄÕÂÖУ¬ÎÒÃǽ«Ñ§»áÔõÑù¶ÔÊý¾Ý×÷¸ü¸´ÔӵĴ¦Àí¡£×÷Ϊһ¸öʾÀý£¬ÎÒÃÇ»á×¼±¸Ò»×éXMLÊý¾Ý£¬½«Êý¾Ý·Ö¸î³É¶ÀÁ¢µÄƬ¶Ï²¢ÒÔ²»Í¬µÄ·½Ê½Õ¹Ê¾ÕâЩƬ¶Ï£¨È¡¾öÓÚËüÃÇÊÇÈçºÎ±»±êʶµÄ£©¡£
¡¡¡¡ÕâƪÎÄÕÂÊǽ¨Á¢ÔÚÉÏһƪÎÄÕÂÖй¹ÔìµÄʾÀý´úÂëµÄ»ù´¡Ö®ÉÏ£¬ËùÒÔÈç¹ûÄã²»ÄÜÀí½âÎÒÃÇÏÖÔڵĴúÂ룬Äã¿ÉÒԻعýÍ·È¥¶ÁµÚһƪÎÄÕ£¨sheneyan×¢£º¾ÍÔÚÉÏÃ棩¡£
¿ªÊ¼¡«
¡¡¡¡ÈÃÎÒÃÇ¿ªÊ¼ÎÒÃǵĵÚÒ»²½£º¹¹ÔìXML¡£ÎÒÃÇ×¼±¸Ð´Ò»¸öXMLÎĵµ£¬Ëü×éÖ¯ÁËһϵÁÐ×¼±¸ÈÃjavascript´¦ÀíµÄÊý¾Ý£¬ËùÒÔÎÒÃǽ«Ò»Æð×é֯һЩ½ÚµãºÍ×ӽڵ㣨»òÕߣ¬ÔªËغÍ×ÓÔªËØ£©¡£ÔÚÕâ¸öÀý×ÓÀÎÒÃǽ«Ê¹ÓÃһЩ¼ÒÍ¥³èÎïµÄÃû×Ö£º
<?xml version="1.0" encoding="UTF-8"?>
<data>
<pets>
<pet>è</pet>
<pet>¹·</pet>
<pet>Óã</pet>
</pets>
</data>
¡¡¡¡ÔÚÉÏÃ棬ÎÒÃÇÓÐÕâ¸öXMLÉùÃ÷£¨±êÃ÷Õâ¸öÎĵµÊÇÒ»¸öXML 1.0 Îĵµ£¬Ê¹ÓÃUTF-8±àÂ룩£¬Ò»¸ö¸ùÔªËØ£¨<data>£©½«ÏÂÃæËùÓеÄÔªËØ×éºÏÔÚÒ»Æð£¬Ò»¸ö<pets>ÔªËØ×éÖ ......