Question
Je suis nouveau dans l'asp et j'ai une échéance dans les prochains jours. Je reçois le code XML suivant dans une réponse de service Web.
print("<?xml version="1.0" encoding="UTF-8"?>
<user_data>
<execution_status>0</execution_status>
<row_count>1</row_count>
<txn_id>stuetd678</txn_id>
<person_info>
<attribute name="firstname">john</attribute>
<attribute name="lastname">doe</attribute>
<attribute name="emailaddress">john.doe@johnmail.com</attribute>
</person_info>
</user_data>");
Comment puis-je analyser ce XML dans les attributs ASP?
Toute aide est grandement appréciée
Merci Damien
Lors d’une analyse plus poussée, certains feuilletons sont également renvoyés car la réponse aboce provient d’un appel de service Web. puis-je toujours utiliser le code ci-dessous?
La solution
Vous devez lire à propos de l'analyseur MSXML. Voici un lien vers un bon exemple "tout en un" http://oreilly.com/pub/h / 466
Quelques lectures sur XPath seront également utiles. Vous pouvez obtenir toutes les informations dont vous avez besoin dans MSDN.
Vol du code de Luke : excellente réponse à des fins d'agrégation:
Dim oXML, oNode, sKey, sValue
Set oXML = Server.CreateObject("MSXML2.DomDocument.6.0") 'creating the parser object
oXML.LoadXML(sXML) 'loading the XML from the string
For Each oNode In oXML.SelectNodes("/user_data/person_info/attribute")
sKey = oNode.GetAttribute("name")
sValue = oNode.Text
Select Case sKey
Case "execution_status"
... 'do something with the tag value
Case else
... 'unknown tag
End Select
Next
Set oXML = Nothing
Autres conseils
Par ASP, je suppose que vous voulez dire ASP classique? Essayez:
Dim oXML, oNode, sKey, sValue
Set oXML = Server.CreateObject("MSXML2.DomDocument.4.0")
oXML.LoadXML(sXML)
For Each oNode In oXML.SelectNodes("/user_data/person_info/attribute")
sKey = oNode.GetAttribute("name")
sValue = oNode.Text
' Do something with these values here
Next
Set oXML = Nothing
Le code ci-dessus suppose que vous avez votre code XML dans une variable appelée sXML. Si vous utilisez ceci via une requête ServerXMLHttp, vous devriez pouvoir utiliser la propriété ResponseXML de votre objet à la place de oXML ci-dessus et ignorer l'étape LoadXML.
Vous pouvez essayer de charger le xml dans l'objet xmldocument puis de l'analyser en utilisant ses méthodes.