2

1 つの XML ノードからはテキストを取得できるのに、その兄弟ノードからはテキストを取得できないのはなぜですか? 私は今、何か間違ったことをしているに違いありません。実際には、ある時点で機能していましたが、その時点で間違った兄弟を選択していました。以下のコードは、strRespone を返し、ソース コードに書き込みます。しかし、次のものでエラー '' が発生します。

エラー: Microsoft VBScript ランタイム エラー '800a01a8'

必要なオブジェクト

/preview.asp、905 行目 (行: strAuthCode = strBMLAuthCode.text )

コード:

Dim NodeList, Node, SubNode
Set NodeList = xmlDom.documentElement.selectNodes("onlineresponse/authorizationresponse")

Set strBMLResponse = xmlDom.SelectSingleNode("//response")
    strResponse = strBMLResponse.text
    Response.Write "<!--strResponse: " & strResponse & "-->"


If strResponse = "000" Then '//SUCCESS!!
    Set strBMLAuthCode = xmlDom.SelectSingleNode("//id")
        strAuthCode = strBMLAuthCode.text
        Response.Write "strAuthCode: " & strAuthCode & "<br>"


    Set strBMLAcctNum = xmlDom.SelectSingleNode("//number")
        strAcctNum = strBMLAcctNum.text
        Response.Write "strAcctNum: " & strAcctNum & "<br>"
        strCCNum = strAcctNum

Else ' if strResponse <> '000'...

XML がありません: 私はそれを理解しました.. セキュリティ上の予防措置として xml を削除しました。

ありがとう!

編集:すぐに答えを投稿します。

4

1 に答える 1

2

あなたのハンガリー語表記は恐ろしいです。文字列と非文字列の両方に「str」プレフィックスを使用します。つまり、strBMLResponse は文字列ではありません! 次のように値の名前を変更することを検討してください。

Dim xmlResponse
Set xmlResponse = xmlDom.SelectSingleNode("//response")
Dim strResponse
strResponse = xmlResponse.text

第 2 に、エラー チェックがありません。つまり、コードは Set が常に有効なオブジェクトを割り当てると常に想定しています。しかし、実際にNothingは が返されるシナリオが存在する可能性があります。

If strResponse = "000" Then
    Dim xmlAuthCode
    Set xmlAuthCode = xmlDom.SelectSingleNode("//litletxnid")
    If Not (xmlAuthCode is Nothing) Then
        Dim strAuthCode
        strAuthCode = xmlAuthCode.text
        Rem ...
    End If
End If

提供された XML と提供されたコードを確認しましたが、エラーは再現できませんでした。そのため、情報が不十分であると想定します。つまり、xmlDom の内容には実際には「litletxnid」ノードが含まれていないと推測しています。その状況を確認または拒否するには、追加のチェックを行う必要があります。

編集:

追加情報をありがとうございます。前述のように、提供された情報で問題を再現できません。これは、特にノードの詳細な分析では、より多くのトラブルシューティングが必要であることを意味しlitletxnidます。他にもアクセスする方法があります。たとえば、次のとおりです。

Dim xmlAuthCode
Set xmlAuthCode = xmlDom.documentElement.firstChild.firstChild
Rem You can add debugging here like view xmlAuthCode.xml
于 2012-09-04T14:08:23.377 に答える