ASP Classic – XML Dom
发布时间:2020-05-23 22:19:51 所属栏目:asp.Net 来源:互联网
导读:我有一个令人不愉快的任务是在一个经典ASP站点(VBSCRIPT)上工作,需要在一个循环中解析出以下信息. xml product ref=xxx xxx/ xxx/ xxx/ images image ref=JCCCCCC / image ref=JCCCCCD / /images
|
我有一个令人不愉快的任务是在一个经典ASP站点(VBSCRIPT)上工作,需要在一个循环中解析出以下信息. <xml>
<product ref="xxx">
<xxx/>
<xxx/>
<xxx/>
<images>
<image ref="JCCCCCC" />
<image ref="JCCCCCD" />
</images>
</product>
<product ref="xxx">
<xxx/>
<xxx/>
<xxx/>
<images>
<image ref="JCCCCCC" />
<image ref="JCCCCCD" />
</images>
</product>
</xml>
我正试图抓住产品参考然后图像(第4个主节点向下) 我已经有一段时间对此感到不满,并且在不使用ASP超过2年后遭受脑阻塞. <%
Set objXML = Server.CreateObject("Microsoft.XMLDOM")
Set objLst = Server.CreateObject("Microsoft.XMLDOM")
Set objHdl = Server.CreateObject("Microsoft.XMLDOM")
objXML.async = False
objXML.Load (Server.MapPath("") & "xmlupdateproduct.xml")
If objXML.parseError.errorCode <> 0 Then
'handle the error
End If
Set objLst = objXML.getElementsByTagName("Product")
SizeofObject = objLst.length-1
response.Write(SizeofObject&"<br><br>")
For i = 0 To (SizeofObject-1)
Set objHnd = objLst.item(i)
Response.Write(objHdl.childNodes(0).text)
Next
%>
在我对ASP失去理智之前,任何帮助都会很棒 —附加— 使用它提供了一个完整的输出,因为我希望它的节点属性似乎无法抓住. <%
Set objLst = objXML.getElementsByTagName("Product")
SizeofObject = objLst.length-1
response.Write(SizeofObject&"<br><br>")
For each elem in objLst
set childNodes = elem.childNodes
for each node in childNodes
Response.Write node.nodeName & " = " & node.text & "<br />" & vbCrLf
next
Response.Write "<hr>" & vbCrLf
Next
%>
最终代码转储XML(下面的Cerebrus) <%
Set objLst = objXML.getElementsByTagName("Product")
SizeofObject = objLst.length-1
response.Write(SizeofObject&"<br><br>")
For each elem in objLst
set childNodes = elem.childNodes
for each node in childNodes
Response.Write node.nodeName & " = " & node.text & "<br />" & vbCrLf
If lcase(node.nodeName)="images" then
Response.Write("<B>Images Hit</B></br>")
set xattchildnodes = node.childNodes
For Each attchildnodes in xattchildnodes
For Each att in attchildnodes.Attributes
Response.Write att.Name & " = " & att.text & "<br />" & vbCrLf
Next
Next
End If
next
Response.Write "<hr>" & vbCrLf
Next
%>
使用XPATH版本(从下面的Pete Duncanson修改) <%
Set objXML = Server.CreateObject("Microsoft.XMLDOM")
objXML.Load (Server.MapPath("") & "Product.xml")
'etc'
Dim nodes
set nodes = objXML.selectNodes("//xml/Product")
Dim images
For each node in nodes
Response.Write("<ul>")
Response.Write("<li>Ref: " & node.getAttribute("ref") & "</li>")
Set images = node.selectNodes("Images/Image")
For each image in images
Response.Write( "<li>Image:"& image.getAttribute("ref") &"</li>" )
Next
Response.Write( "</ul>" )
Next
%>
安东尼琼斯指出,更好的具体,所以你可能想要改变 Set objXML = Server.CreateObject("Microsoft.XMLDOM")
至 Set objXML = Server.CreateObject("MSXML2.DOMDocument.3.0")
哪个仍适用于最终代码. 解决方法是的,不得不经常使用经典的ASP,让我回到石器时代……我感受到你的痛苦!IIRC,在您的第二个代码段中,您只需添加: for each node in childNodes
Response.Write node.nodeName & " = " & node.text & "<br />" & vbCrLf
'***Add the following:
For Each att in node.Attributes
Response.Write att.Name & " = " & att.text & "<br />" & vbCrLf
Next
next (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 调试 – 使用ASP.Net Core在VSCode中调试Typescript
- asp.net-mvc – Web API错误:’ObjectContent`1’类型无法
- .net – SignalR – connection.hubName未定义
- asp.net-mvc – 在实体框架中我只想包括第一个子对象而不是
- asp.net-mvc-4 – Twitter Bootstrap nuget包差异?
- asp.net – 存储DotNetOpenAuth信息和用户信息检索
- asp.net – 循环访问复选框列表
- asp.net – 没有回发的日历控件
- asp.net-mvc – Asp.net MVC5,如何加载.hbs文件
- asp.net-mvc – 如何删除SimpleMembership用户?
推荐文章
站长推荐
- asp.net – 实体框架:如何解决“FOREIGN KEY约束
- asp.net – ImageButton不会在IE10上发回帖子
- asp.net-mvc-4 – 提交相同的部分视图多次调用数
- asp.net-mvc – asp.net mvc HttpPostedFileBase
- ASP.NET MVC3(Razor)中的视图中局部变量的简单增
- asp.net – 解析服务器端标记时出错
- .NET HttpSessionState案例不敏感
- asp.net – 命名空间“Microsoft”错误中不存在类
- asp.net-core – Asp.net核心身份使用AspNetUser
- asp.net-mvc – 将id类型从string更改为int时,如
热点阅读
