XML里的数据怎样批量导入关系数据库中?基于ASP或VB.NET

CnEve 2004-10-07 10:13:56
若是用ASP.NET的话可以先将xml加载到DataGrid 然后再进行导入(关键:如何批量)?

若是用ASP的话,可以实现这些功能么?(重点)

如:abc.xml
<n>
<a>xxxxx</a>
<b>xxxxx</b>
<c>xxxxx</c>
</n>
<n>
<a>xxx</a>
<b>xxx</b>
<c>xxx</c>
</n>
.....

我想将abc.xml中的数据一次批量导入表中的“a、b、c”字段,请问这些用ASP怎么处理?
...全文
184 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
CnEve 2004-10-08
  • 打赏
  • 举报
回复
完整的例子:
<?xml version="1.0" encoding="gb2312"?>
<root>
<n>
<a>a1</a>
<b>b1</b>
<c>c1</c>
</n>
<n>
<a>a2</a>
<b>b2</b>
<c>c2</c>
</n>
<n>
<a>a3</a>
<b>b3</b>
<c>c3</c>
</n>
</root>
CnEve 2004-10-08
  • 打赏
  • 举报
回复
sql = "INSERT INTO [tablename] VAULES
老大啊,你最后个字母打错啦:)呛了我好半天....
不过还是提不出.text :(
DeltaCat 2004-10-08
  • 打赏
  • 举报
回复
Else
response.Write("加载XML文件失败")
End if
set cNodes = nothing
set xmldom = nothing
DeltaCat 2004-10-08
  • 打赏
  • 举报
回复
Dim xmldom
Set xmldom = Server.CreateObject("Microsoft.XMLDOM")
xmldom.async = False
If xmldom.load("XML路径") Then
Dim cNodes

Set cNodes = xmldom.getElementsByTagName("n")
If cNodes.Length = 0 Then
Response.Write("无数据")
Response.End
end If
Dim i, sql

For i = 0 to cNode.Length - 1
sql = "INSERT INTO [tablename] VAULES ('"
sql = sql & cNodes(i).item(0).text & "','" & cNodes(i).item(1).text & "','" & cNodes(i).item(2).text & "')"
ADODBCON.Execute sql
Next
CnEve 2004-10-08
  • 打赏
  • 举报
回复
Set root = xmldom.documentElement
Set cNodes = root.ChildNodes

两个SET 是不是错在这里啊,我试好象也不行
CnEve 2004-10-08
  • 打赏
  • 举报
回复
to alexzhang00(三角猫)
你的遍历XML好象有问题,麻烦帮忙debug一下喂,孟子也帮个忙呀:)
问题解决就结贴,谢谢各位
孟子E章 2004-10-08
  • 打赏
  • 举报
回复
哪里是组件啊,可以遍历节点,用sql语句插入即可
DeltaCat 2004-10-08
  • 打赏
  • 举报
回复
揭帖要这样, 本页的右下角, 有两个 红底白字的 按钮, 是 "管理" 和 "关闭窗口" , 点击 "管理"
CnEve 2004-10-08
  • 打赏
  • 举报
回复
好像给不了分哦???
to 孟子兄,我已经从“系统功能——可用分捐赠”那里给你20分了,可是这里没显示?
说一下怎么结啊,偶新来的
CnEve 2004-10-08
  • 打赏
  • 举报
回复
再加个 xmlhttp 方法就可以远程存取了,好方便,谢谢大家,现在结帐
CnEve 2004-10-08
  • 打赏
  • 举报
回复
不错,我也得了,摸索了大半天也总结出来了:)

<!--#include file="conn"-->
<% Dim objXML,sXML
sXML = Server.MapPath("./datas.xml")
Set objXML = Server.CreateObject("Msxml2.DOMDocument")
objXML.validateonparse = False
objXML.async=false
objXML.load(sXML)
If objXML.ParseError.errorCode <> 0 then
Response.Write("Error: " & objXML.parseError.reason & "<br>")
Response.Write("Code: 0x" & hex(objXML.parseError.errorCode) & "<br>")
Response.Write("At Line: " & objXML.parseError.line & "<br>")
Response.Write("At pos: " & objXML.parseError.linePos & "<br>")

Else
set objNode = objXML.documentElement.ChildNodes
if not isObject(objNode) then
Response.Write("no file loaded")
else
For i=0 to objNode.Length - 1
aa = objNode.item(i).ChildNodes.item(0).text
bb = objNode.item(i).ChildNodes.item(1).text
cc = objNode.item(i).ChildNodes.item(2).text

sql = "INSERT INTO TABLE1(a,b,c) VALUES ('" & aa & "','" & bb & "','" & cc & "')"
conn.Execute sql

Response.Write(aa &"<br />")
Response.Write(bb &"<br />")
Response.Write(cc &"<br /><br />")
Next
Response.End()
end if
End If
%>
bxjgood66 2004-10-08
  • 打赏
  • 举报
回复
学习中
leeyeefeng2004 2004-10-08
  • 打赏
  • 举报
回复
我只知道在vb.net下如何 完成
使用xmlread导入datagrid里
使用sqlaptepdate +dataset填充可以完成导入数据库
很简单的
DeltaCat 2004-10-08
  • 打赏
  • 举报
回复
我已经测试过了, 没问题了
DeltaCat 2004-10-08
  • 打赏
  • 举报
回复
<%
Dim xmldom
Set xmldom = Server.CreateObject("Microsoft.XMLDOM")
xmldom.async = False
If xmldom.load(Server.MapPath("./demo.xml")) Then
Dim cNodes

Set cNodes = xmldom.getElementsByTagName("n")
If cNodes.Length = 0 Then
Response.Write("无数据")
Response.End
End If
Dim i, sql

For i = 0 to cNodes.Length - 1
sql = "INSERT INTO [tablename] VALUES ('"
sql = sql & cNodes(i).childNodes.item(0).text & "','" & cNodes(i).childNodes.item(1).text & "','" & cNodes(i).childNodes.item(2).text & "')"
ADODBCON.Execute sql
Next
set cNodes = nothing
Else
Response.Write("xml 加载错误")
End If
Set xmldom = nothing
%>
DeltaCat 2004-10-07
  • 打赏
  • 举报
回复
对上面的一点修正
sql = sql & cNodes(i).childNodes.item(0).text & "','" & cNodes(i).childNodes.item(1).text & "','" & cNodes(i).childNodes.item(2).text & "')"
DeltaCat 2004-10-07
  • 打赏
  • 举报
回复
我即时写的, 如果有问题, 在修正一下, 思路就是这样了, 组合SQL 的时候, 根据字段的类型不同自己修改
DeltaCat 2004-10-07
  • 打赏
  • 举报
回复
Set xmldom = nothing
end if
DeltaCat 2004-10-07
  • 打赏
  • 举报
回复
ASP的代码:

Dim xmldom
Set xmldom = Server.CreateObject("Microsoft.XMLDOM")
xmldom.async = False
If xmldom.load("XML路径") Then
Dim root, cNodes
Set root = xmldom.documentElement
Set cNodes = root.ChildNodes
If cNodes.Length = 0 Then
Response.Write("无数据")
Response.End
end If
Dim i, sql

For i = 0 to cNode.Length - 1
sql = "INSERT INTO [tablename] VAULES ('"
sql = sql & cNodes(i).item(0).text & "','" & cNodes(i).item(1).text & "','" & cNodes(i).item(2).text & "')"
ADODBCON.Execute sql
Next

CnEve 2004-10-07
  • 打赏
  • 举报
回复
感谢net_lover(孟子E章) 提供的参考文章,可惜得用组件,不过还是给了本人一点思路
请问:有ASP的例子吗?
加载更多回复(1)

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧