2010-08-09 3 views
0

Je ne peux rien faire avec le texte de réponse du code ci-dessous autre que l'imprimer à l'écran. Je veux utiliser une instruction if pour vérifier le texte de la réponse, mais chaque fois que j'essaye cela, il n'imprime rien.Impossible d'utiliser des fonctions de chaîne sur le texte de réponse xmlhttp dans VBScript

Pour les besoins de cet exemple, supposons que le texte de réponse est "2"

code:

Set xmlhttp = server.CreateObject("MSXML2.XMLHTTP") 
xmlhttp.open "POST", url,false 
xmlhttp.setRequestHeader "Content-Type", "text/xml" 
message = "test example" 
xmlhttp.send(message) 

if xmlhttp.responseText = "2" 
response.Write("Found a 2") 
end if 

Ce qui se passe est si je viens Response.write (xmlhttp.responseText), il imprimera sur les deux, mais quand je tente de faire toutes les fonctions de chaîne sur le texte de réponse, il ne tient pas compte et imprime rien

toute aide appréciée

+0

Quelles fonctions de chaîne avez-vous essayé d'utiliser avec le texte de réponse? Pourriez-vous ajouter un exemple à votre message? – Helen

+0

Ce que je suis en train de faire est de voir si la chaîne est égale à l'autre, en utilisant si xmlhttp.responseText = « 2 » et ont également essayé si StrComp (responseText, « 2 », 1) = 0 qui devrait faire une comparaison textuelle et retourner 0 si elles sont identiques. Je commence cependant à me demander si c'est un problème avec ce qui est retourné, car StrReverse (responseText) imprime la réponse xml en sens inverse, même si le responseText semble normalement être juste "2" Je vais continuer à essayer pour savoir ce qui se passe et si vous avez des idées s'il vous plaît faites le moi savoir. Merci – pedroAx

+0

J'ai résolu le problème maintenant. Lorsque vous faites response.Write (responseText), il va essayer d'être intelligent sans vous dire et d'assumer ce que vous voulez imprimer est ce qui est dans les tags . Cependant, si vous inversez le contenu de la chaîne, il vous donne le texte entier de la réponse xml. J'ai donc dû utiliser InStr et Mid pour trouver dans le fichier XML et obtenir la valeur entre. – pedroAx

Répondre

2

responseText vous envoyer une valeur de chaîne "<" return> 2 < "/ return> mais lorsque vous imprimez cette valeur, il est très intelegent de sorte que seulement 2 seront imprimés. donc quand vous comparez avec "2", cela ne correspond pas. J'ai résolu ce problème par la méthode search(). par exemple ....

var réponse = xmlhttp.responseText;

var trouvé = response.search ("2");

si (trouvé! = -1) { alert ("Found a 2"); }

explication: cette méthode string1.search (string2) envoie -1 si string2 n'est pas trouvé dans string1. mais s'il est trouvé, il vous envoie la position du premier trouvé. donc si le résultat n'est pas -1 alors il est sûr que string2 est trouvé dans string1. vous pouvez essayer de cette façon. Je pense que vous pouvez résoudre votre problème. bonne chance.

Questions connexes