2008-09-18 12 views
5

Je suis nouveau à asp et avoir une date limite dans les prochains jours. Je reçois le code XML suivant dans une réponse de service Web.Asp XML Analyse

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">[email protected]</attribute> 
</person_info> 
</user_data>"); 

Comment puis-je analyser ce fichier XML en attributs ASP?

Toute aide est grandement appréciée

Merci Damien

Sur une analyse plus approfondie, des trucs de savon est également retourné comme la réponse aboce est d'un appel de service Web. Puis-je encore utiliser le code de Lukes ci-dessous?

Répondre

9

Vous devez lire à propos de l'analyseur MSXML. Voici un lien vers un bon exemple tout-en-un http://oreilly.com/pub/h/466

Certaines lectures sur XPath seront également utiles. Vous pouvez obtenir toutes les informations dont vous avez besoin dans MSDN.

Stealing le 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 
+0

Je ne comprends pas .. vous ne faites jamais rien avec sValue ?? – JoJo

0

Vous pouvez essayer de charger le fichier XML dans l'objet XmlDocument puis analyser en utilisant c'est des méthodes.

6

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 XML dans une variable appelée sXML. Si vous le consommez via une requête ServerXMLHttp, vous devriez pouvoir utiliser la propriété ResponseXML de votre objet à la place de oXML ci-dessus et ignorer complètement l'étape LoadXML.