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?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top