2009-09-02 54 views
0

示例XML:問題通過XML數據穿越 - VBScript的方式

<cart subTotal="USD 3.50" > 

    <item productSubTotal="3.50" > 
     <pkProductItem>241</pkProductItem> 
     <itemCode>23455-green-XL</itemCode> 
     <itemName>my product (green - XL-size)</itemName> 
     <qty>1</qty> 
     <itemUnitPrice>3.50</itemUnitPrice> 
     <totalItemPrice>3.50</totalItemPrice> 
    </item> 

    <item productSubTotal="9.90" > 
     <pkProductItem>123</pkProductItem> 
     <itemCode>23455-green-XL</itemCode> 
     <itemName>my product (red - L-size)</itemName> 
     <qty>1</qty> 
     <itemUnitPrice>9.90</itemUnitPrice> 
     <totalItemPrice>9.90</totalItemPrice> 
     <options> </options> 
    </item> 

</cart> 

<finalTotalValue>3.50</finalTotalValue> 

Dim myXML: myXML= <the full xml string above>

注:以上是使用字符串連接生成的XML數據。 上述XML數據不是從XML文件加載的。

生成後,如何使用ASP VBScript遍歷讀取數據?

  1. 如何檢索<finalTotalValue>

    Dim oXML, URI 
    Set oXML = Server.CreateObject("MSXML2.DomDocument") 
    oXML.loadXML(objXMLhttp.responseText) 
    URI = oXML.selectSingleNode("//itemCode").text 
    

這似乎並不奏效。

  1. 如何使用for循環檢索購物車內的物品? 裏面的<cart>可以有多個項目。

  2. 如何檢索標籤內的值?例如:<item productSubTotal="9.90" > 我想通過循環購物車XML中的產品來獲得9.90。

我很感激任何幫助。

回答

1

This tutorial應該有所幫助。

要通過車循環,可以做這樣的事情:

totalcost = 0 
set Cart_node = oXML.getElementsByTagName("cart") 
' Loop through the cart node 
for each itemNodes in Cart_node(0).ChildNodes 
    ' get the product sub total from each item node 
    productSubTotal = itemNodes.getAttribute("productSubTotal") 
    ' Loop through each item node 
    for each item in itemNodes.ChildNodes 
     ' if the node name is "totalItemPrice" add the value to the totalcost 
     if item.nodeName = "totalItemPrice" Then 
      totalcost = totalcost + item.Text 
     end if 
    Next 
Next 
' totalcost will be the total of all values in totalItemPrice nodes. 

可以檢索finalTotalValue這樣的:

set final = oXML.getElementsByTagName("finalTotalValue") 
finalTotalValue = final(0).text