现有一个XML文件,请问用ASP将内容读出,如何读取?

beyond_jsq 2007-11-19 11:02:53
<?xml version="1.0" encoding="GBK" ?>
- <电子公文>
<公文总属性 公文文号="国电 [2006] 第1号" 内部文号="FW0000000006" 版本号="1.1" 公文类别="" 公文种类="指示" 行文类型="平行文" 公文单ID="0" />
<发文单位 机构代码="" 办理类别="主办">发文单位</发文单位>
- <公文体>
- <眉首>
<秘密等级 描述="">1</秘密等级>
<保密期限>7天</保密期限>
<紧急程度 描述="">1</紧急程度>
- <发文字号>
<发文单位代字 />
<发文年号 />
<发文序号 />
</发文字号>
<签发人>签发人</签发人>
<签发日期>2006-11-14</签发日期>
</眉首>
- <主体>
<标题>公文包测试</标题>
<主送单位 机构代码="">主送单位</主送单位>
<内容加密 是否加密="1" 加密KEYID="20070125" />
<正文 office插件类型="ut" 编码方式="URL" 数据类型="application/msword">建设方案.doc.sly</正文>
<公文生效标识 />
<成文日期>2006-12-14</成文日期>
<附注 />
</主体>
- <版记>
- <主题词>
<词目>主题词1</词目>
<词目>主题词2</词目>
</主题词>
<抄送单位 抄送类别="抄送" 机构代码="">抄送单位1,抄送单位2</抄送单位>
- <印制版记>
<印发单位>印发单位</印发单位>
<印发日期>2006-11-14</印发日期>
<印发份数>80</印发份数>
</印制版记>
</版记>
</公文体>
<预留属性1 名称="抄报单位" 值="抄报单位" />
<预留属性2 名称="打 印 人" 值="打印人" />
<预留属性3 名称="预留属性3" 值="系统预留字符" />
- <扩展数据>
<varchar0 />
<varchar1>预留字符</varchar1>
<varchar2 />
<varchar3 />
<varchar4 />
<varchar5 />
<varchar6 />
<varchar7 />
<varchar8 />
<varchar9 />
<int0>0</int0>
<int1>9</int1>
<int2>0</int2>
<int3>0</int3>
<int4>0</int4>
<datetime0 />
<datetime1>2007-11-13</datetime1>
<datetime2 />
<datetime3 />
<datetime4 />
<text0 />
<text1>预留文本1</text1>
<text2 />
<text3 />
<text4 />
</扩展数据>
</电子公文>
...全文
134 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
linjitvd 2007-11-20
  • 打赏
  • 举报
回复
XML知识点很多,不可能在这里一一说明。你可以找些书看看。
可以给你个例子,希望对你有所帮助。运行下面代码可以得到与XML文件类似的结果。运行前请把<?xml version= "1.0 " encoding= "GBK " ?> 写规范,否则显示会有问题。

<%
set xmlDoc=Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.async= false
xmlDoc.load(Server.MapPath("test.xml"))
set root = xmlDoc.documentElement
writeBeginNode root.nodename
ident = "    "
writeNodes root, ident
writeEndNode root.nodename

sub writeNodes(node, ident)
set nodes = node.ChildNodes
NodesLen = nodes.length
if NodesLen>0 then
for each subNode in nodes
response.Write ident
if (subNode.nodeType = 1) then
response.Write "<" + subNode.nodename
for each attr in subNode.Attributes
response.Write " " + attr.nodeName + "=" + attr.nodeValue
next
response.Write ">"
response.Write "<br>"
end if
if (subNode.nodeType = 3) then
response.Write (subNode.nodeValue)
response.Write "<br>"
end if
writeNodes subNode,ident + ident
if (subNode.nodeType = 1) then
response.Write ident
writeEndNode (subNode.nodeName)
end if
next
end if
end sub

sub writeBeginNode(nodename)
response.Write "<" + nodename + ">"
response.Write "<br>"
end sub
sub writeEndNode(nodename)
response.Write "</" + nodename + ">"
response.Write "<br>"
end sub
%>
beyond_jsq 2007-11-19
  • 打赏
  • 举报
回复
是的,我知道要用XMLDOM来处理,我就是不明白LOAD后如果处理每一个XML元素的.
linjitvd 2007-11-19
  • 打赏
  • 举报
回复
用Microsoft.XMLDOM来读取

set xmlDoc=Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load(Server.MapPath("文件名"))

再处理xmlDoc达到你所需的结果
beyond_jsq 2007-11-19
  • 打赏
  • 举报
回复
谢谢,请不要到网上去随便找一个就来,我在网上查找过了,主要是不理解在读取每一个节点的值的时候是如何工作的.
cxc3214 2007-11-19
  • 打赏
  • 举报
回复
http://news.newhua.com/html/Design_Web/2007-2/9/072910260987638_95.shtml
网上多的是.
cxc3214 2007-11-19
  • 打赏
  • 举报
回复
Dim oXML, oXMLError, ReturnValue, x
Set oXML = Server.CreateObject("MSXML2.DOMDocument")
oXML.async = false
oxml.setProperty "ServerHTTPRequest", true
ReturnValue = oXML.load(Server.MapPath("d.xml"))
Set objNode = oXML.getElementsByTagName("Name")
For x=objNode.length-1 To 0 Step -1
Response.Write objNode.item(x).Text&"
"
next

Set objNode = oXML.selectNodes("/Persons/Person[@name='sale']/Name")
For each x in objNode
Response.Write x.Text&"
"
next
Set oXML = Nothing



小东
dong
139XXXXXXXX
小成
cheng
139XXXXXXXX


小王
wang
136XXXXXXXX
beyond_jsq 2007-11-19
  • 打赏
  • 举报
回复
请将代码完整贴出,不够再给分.
创建XML对象,LOAD文件等不用写,关键是如何去读取每一行的,谢谢.

28,409

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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