一个ASP解析XML的问题,谢谢!

cheungbo 2007-11-27 10:39:34
ASP代码如下:

Other = rs("info")'从数据库中获取到的XML字符串
set xmldom=Server.CreateObject("MICROSOFT.XMLDOM")
xmldom.loadXML(Other) '加载XML字符串
'xmldom.load(Server.MapPath("tt.xml"))'直接加载xml文本
Set item=xmldom.getElementsByTagName("item")
For i=0 To (item.Length-1)
Set title=item.Item(i).getElementsByTagName("title")'获取title
set url=item.Item(i).getElementsByTagName("link")'获取link
response.Write "<a href="& url.Item(0).Text&" >"& title.Item(0).Text&"</a></br>" '输出
next

需要分析的XML内容如下:

<item>
<reportid>1122145026</reportid>
<title>有人在论坛发表了新的帖子</title>
<link>bbs.asp?logid=20071122145026</link>
<datetime>2007-11-26 14:50:26</datetime>
</item>
<item>
<title>有人新建立了一个相册</title>
<link>album.asp?albumid=20071122145042</link>
<datetime>2007-11-26 14:50:48</datetime>
</item>
<item>
<title>有人在相册新上传了图片</title>
<link>albumview.asp?albumid=20071122145043</link>
<datetime>2007-11-26 14:56:22</datetime>
</item>
<item>
<title>有人在相册新上传了图片</title>
<link>albumview.asp?albumid=20071122145044</link>
<gourpid>10014</gourpid>
<datetime>2007-11-26 14:59:47</datetime>
</item>


现在的问题是,使用xmldom.loadXML(Other)的方式就读取分析不出XML,other内容是正常的;
使用xmldom.load(Server.MapPath("test.xml"))直接加载XML文件就正常,
我想使用xmldom.loadXML(Other)的方式从数据库内容里读取XML,帮忙看看是啥问题,解决立即结帐!谢谢!
...全文
74 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cheungbo 2007-11-27
  • 打赏
  • 举报
回复
哈哈,问题解决,确实少个根节点不能解吸,少了根节点只能解析第一个子节点XML.
我在字符串开始和结尾附加了个根节点,处理了回车等字符.解析正确
再次感谢xiaolei1982,showbo.
Go 旅城通票 2007-11-27
  • 打赏
  • 举报
回复
可能是你的xml文件少了一个根元素,下面的代码有结果

dim xmldom,xml,item
xml="<body><item><reportid>1122145026</reportid><title>有人在论坛发表了新的帖子</title>"&_
"<link>bbs.asp?logid=20071122145026</link>"&_
"<datetime>2007-11-26 14:50:26</datetime></item>"&_
"<item><title>有人新建立了一个相册</title>"&_
"<link>album.asp?albumid=20071122145042</link>"&_
"<datetime>2007-11-26 14:50:48</datetime></item>"&_
"<item><title>有人在相册新上传了图片</title>"&_
"<link>albumview.asp?albumid=20071122145043</link>"&_
"<datetime>2007-11-26 14:56:22</datetime></item>"&_
"<item><title>有人在相册新上传了图片</title>"&_
"<link>albumview.asp?albumid=20071122145044</link>"&_
"<gourpid>10014</gourpid>"&_
"<datetime>2007-11-26 14:59:47</datetime></item></body>"

Set xmldom = Server.CreateObject("MICROSOFT.XMLDOM")

xmldom.loadXML(xml)

Set item=xmldom.getElementsByTagName("item")
For i=0 To (item.Length-1)
Set title=item.Item(i).getElementsByTagName("title")'获取title
set url=item.Item(i).getElementsByTagName("link")'获取link
response.Write "<a href="& url.Item(0).Text&" >"& title.Item(0).Text&"</a></br>" '输出
next

set item=nothing
set xmldom=nothing
xiaolei1982 2007-11-27
  • 打赏
  • 举报
回复
Other = "<item><reportid>1122145026</reportid><title>有人在论坛发表了新的帖子</title><link>bbs.asp?logid=20071122145026</link><datetime>2007-11-26 14:50:26</datetime></item>"
set xmldom=Server.CreateObject("MICROSOFT.XMLDOM")
我这样测试的没有问题,需要要把回车空格等特殊字符做替换,
就是一定要写成一个字符串形式
intermylife 2007-11-27
  • 打赏
  • 举报
回复
是的
cheungbo 2007-11-27
  • 打赏
  • 举报
回复
回:showbo
字符串输出与XML内容是一样的,这个XML问的内容也是我直接从数据库里复制出来的.
字符串没有做编码!这个问题很困惑!
Go 旅城通票 2007-11-27
  • 打赏
  • 举报
回复
检查你的数据库中的数据是不是同你的xml代码一样,如果你把<,>这种编码成>,<了的话,要替换成<,>才能解析xml
cheungbo 2007-11-27
  • 打赏
  • 举报
回复
补充一下:页面编码为uft-8,不知道是否和这个有关联!

28,390

社区成员

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

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