Проблема с обходом данных XML - способ VBScript

Пример XML:

<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" > Я хочу получить 9,90, перебирая продукты внутри корзины XML.

Я ценю любую помощь.


person i need help    schedule 02.09.2009    source источник


Ответы (1)


Это руководство должно помочь.

Чтобы просмотреть корзину, вы можете сделать что-то вроде этого:

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
person Tester101    schedule 02.09.2009