|
首页>编程技术>xml技术> |
从数据库生成XML,然后读取XML的过程中的问题(例子) |
|
Visited times , Welcome to Data Mining Forum & Data Mining Expert |
|
|
我在ASP文件中由数据库生成XML文件,然后读取XML,显示在页面中 生成的XML文件内容: <xml xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema"> <row ORDER_ID="6206672" OFR_NAME="变更应用功能" SERVICE_NBR="3712447" ACCS_NBR="3712447" EMPEE_NAME="郭枫" INTER_ORG_NAME="营业1" CODE_NAME="已竣工" CRT_DATE="2007-10-22T11:02:44" COMPLETE_DATE="2007-10-22T00:00:00" SLTYPE="已受理" AMOUNT="1" DEVELOPER="17000022"/> <row ORDER_ID="6206690" OFR_NAME="变更应用功能" SERVICE_NBR="3712447" ACCS_NBR="3712447" EMPEE_NAME="郭枫" INTER_ORG_NAME="营业1" CODE_NAME="已竣工" CRT_DATE="2007-10-22T11:04:22" COMPLETE_DATE="2007-10-22T00:00:00" SLTYPE="已受理" AMOUNT="1" DEVELOPER="17000022"/> <row ORDER_ID="6206826" OFR_NAME="改址" SERVICE_NBR="3712447" ACCS_NBR="3712447" EMPEE_NAME="郭枫" INTER_ORG_NAME="营业1" CODE_NAME="已竣工" CRT_DATE="2007-10-22T11:18:18" COMPLETE_DATE="2007-10-22T00:00:00" SLTYPE="已受理" AMOUNT="1" DEVELOPER="17000022"/> <row ORDER_ID="6222346" OFR_NAME="变更单一套餐" SERVICE_NBR="3712447" ACCS_NBR="3712447" EMPEE_NAME="张兰" INTER_ORG_NAME="营业1" CODE_NAME="已竣工" CRT_DATE="2007-10-25T08:17:53" COMPLETE_DATE="2007-10-25T00:00:00" SLTYPE="已受理" AMOUNT="1" DEVELOPER="1"/> <row ORDER_ID="6287062" OFR_NAME="变更应用功能" SERVICE_NBR="3712447" EMPEE_NAME="陶军" INTER_ORG_NAME="营业1" CODE_NAME="已竣工" CRT_DATE="2007-11-02T11:08:41" COMPLETE_DATE="2007-11-02T00:00:00" SLTYPE="已受理" AMOUNT="1" DEVELOPER="19000014"/> 数据挖掘实验室 <row ORDER_ID="6287339" OFR_NAME="变更应用功能" SERVICE_NBR="3712447" ACCS_NBR="3712447" EMPEE_NAME="陶军" INTER_ORG_NAME="营业1" CODE_NAME="已竣工" CRT_DATE="2007-11-02T11:28:03" COMPLETE_DATE="2007-11-02T00:00:00" SLTYPE="已受理" AMOUNT="1"/> </xml> 然后在ASP中用下面语句读取并显示: objXML.load(Server.MapPath("create_xml.xml")) set nodeList=objxml.selectSingleNode("//xml").ChildNodes For Each node In NodeList set ORDER_ID=node.attributes.getNamedItem("ORDER_ID") set OFR_NAME=node.attributes.getNamedItem("OFR_NAME") set SERVICE_NBR=node.attributes.getNamedItem("SERVICE_NBR") set ACCS_NBR=node.attributes.getNamedItem("ACCS_NBR")//这个属性值有些没有有些有 set EMPEE_NAME=node.attributes.getNamedItem("EMPEE_NAME") set INTER_ORG_NAME=node.attributes.getNamedItem("INTER_ORG_NAME") set CODE_NAME=node.attributes.getNamedItem("CODE_NAME") set CRT_DATE=node.attributes.getNamedItem("CRT_DATE") set COMPLETE_DATE=node.attributes.getNamedItem("COMPLETE_DATE") set SLTYPE=node.attributes.getNamedItem("SLTYPE") set AMOUNT=node.attributes.getNamedItem("AMOUNT") set DEVELOPER=node.attributes.getNamedItem("DEVELOPER") %> <tr> <td width="40" id=tag <%=i%> style='CURSOR: hand' onclick=turnit(Content <%=i%> ,tag <%=i%> ); language=JScript> <img src=../images/+.gif> <%=i%> </td> <td width="50"> <%=ORDER_ID.Text%> </td> 数据挖掘研究院 <td width="160"> <%=OFR_NAME.Text%> </td> <td width="80"> <%=SERVICE_NBR.Text%> </td> <td width="60"> <%=ACCS_NBR.Text%> </td> <td width="70"> <%=CODE_NAME.Text%> </td> <td width="250"> <%=CRT_DATE.Text%> </td> <td width="120"> <%=SLTYPE.Text%> </td> </tr> <td colspan="13" align="left" height="25" width="700" id=Content <%=i%> style='DISPLAY: none'> <table border=0 cellspacing=1 align=center class=form width="700"> <tr> <tr> <th width="200" align=center> 竣工日期 </th> <th width="60" align=center> 受理员 </th> <th width="160" align=center> 受理点 </th> <th width="65" align=center> 销售品数量 </th> <th width="65" align=center> 发展人代码 </th> </tr> <tr> <td width="200"> <%=COMPLETE_DATE.Text%> </td> <td width="60"> <%=EMPEE_NAME.Text%> </td> <td width="160"> <%=INTER_ORG_NAME.Text%> </td> <td width="10"> <%=AMOUNT.Text%> </td> <td width="60"> <%=DEVELOPER.Text%> </td> 数据挖掘交友 </tr> </tr> </table> <% i=i+1 next 'strXML=strXML&" <useritem> " 'rs.movenext 'i=i+1 'wend 'set FSO=Server.CreateObject("Scripting.FileSystemObject") 'set MyTextFile=FSO.CreateTextFile(Server.MapPath("userinfo.xml")) 'MyTextFile.Write strXML 'MyTextFile.Close %> 出现以下问题: 在读取数据库的时候,因为有些ACCS_NBR字段为空,结果导出为XML文件时,这个记录有些没有有些有,导致在前台显示报错,请问有什么方法能让即使数据库中读取的某个字段值即使是空值,但导到XML中时,仍然保留,只不过值为空值。谢谢 if ACCS_NBR is null set ACCS_NBR = '' Gotantaiyizu的方法不行,谢谢 最好提供个导出XML时如果数据库中字段值为空值导出到XML时也生成属性,并设为空值,这样假如我有多个字段可能为空的话,就不要一个一个判断了!你是通过什么导的,不知道你的过程是怎样的, 数据挖掘论坛 如果有null字段的话,可以在数据库导的时候字段全部用isnull("字段","")输出 我是在ASP页面链接ORACLE中使用以下语句导的: if accnbrkey <> "" then sql="SELECT F.ORDER_ID, A.OFR_NAME, F.SERVICE_NBR, F.ACCS_NBR,C.EMPEE_NAME,D.INTER_ORG_NAME,B.CODE_NAME,F.CRT_DATE,"&_ "F.COMPLETE_DATE, CASE WHEN F.ACCEPT_TYPE = 1 THEN '未受理' WHEN F.ACCEPT_TYPE = 2 THEN '已受理' END SLTYPE,F.AMOUNT,"&_ "F.DEVELOPER FROM TB_PRD_OFR A,"&_ "(SELECT CODE, CODE_NAME FROM TB_PTY_CODE WHERE CODE_TYPE = 'ORD') B,"&_ "TB_PTY_EMPEE C, CRM.VIEW_TB_SYS_EMPEE_ORG_3@ODSB2.AHDX D,"&_ "(SELECT X.*, Y.SERV_ORDER_ID, Y.ACCS_NBR, Y.ORDER_STAS_ID FROM IBA3.TB_EVT_CUST_ORDER_553 X"&_ " FULL OUTER JOIN IBA3.TB_EVT_SERVICE_ORDER_553 Y ON X.ORDER_ID = Y.ORDER_ID"&_ " WHERE (X.SERVICE_NBR = '"&accnbrkey&"' OR Y.ACCS_NBR = '"&accnbrkey&"')) F"&_ " WHERE A.OFR_ID = F.OFR_ID AND F.STAS = B.CODE AND F.EMPEE_ID = C.EMPEE_ID AND F.EMPEE_ID = D.EMPEE_ID ORDER BY F.CRT_DATE" rs.open sql,conn_jf3,1,1 Set objXMLDOM = Server.CreateObject("MSXML2.DOMDocument") Set objXMLDOM_XSLT = server.CreateObject("MSXML2.DOMDocument") rs.Save objXMLDOM,1 if not rs.eof then max_size=14 rs.pagesize=max_size page_now=1 if trim(request.QueryString("page")) <> "" then page_now=cint(trim(request.QueryString("page"))) end if if page_now> rs.pagecount or page_now <0 then page_now=1 end if rs.absolutepage=page_now i=1 objXMLDOM_XSLT.load(Server.MapPath("create_xml.xsl")) strCleanXML = objXMLDOM.transformNode(objXMLDOM_XSLT) objXMLDOM.loadxml(strCleanXML) set pi = objxmldom.createProcessingInstruction("xml","version='1.0' encoding='GB2312'") call objxmldom.insertBefore(pi,objxmldom.childNodes(0)) 数据挖掘论坛 objXMLDOM.save(server.MapPath("create_xml.xml"))感觉问题还是在输出字段上,这样看看,输出全部用这样的形式 SELECT nvl(F.ORDER_ID,''), nvl(A.OFR_NAME,'')。。。 Create By Any-Extract(WL-AE)
|
|
|
|
|
[数据挖掘专家]
[数据挖掘研究院]
[数据挖掘论坛]
[数据挖掘实验室]
|
上一篇:xsl template 问题
下一篇:请教XML数据库的问题
|
|
|
|