Pergunta

Eu sou novo para ASP e tem um prazo nos próximos dias. i receber a seguinte xml a partir de uma resposta webservice.

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>");

Como posso analisar este xml em atributos asp?

Qualquer ajuda é muito apreciada

Graças Damien

Em uma análise mais aprofundada, algumas coisas sabão também é retornado como a resposta aboce é de uma chamada de serviço web. Ainda posso usar o código lukes abaixo?

Foi útil?

Solução

Você precisa ler sobre analisador MSXML. Aqui está um link para um bom all-in-one exemplo http://oreilly.com/pub/h / 466

Alguns leitura em XPath irá ajudar também. Você pode obter todas as informações que você precisa em MSDN.

Roubar o código Luke excelente resposta para fins de agregação:

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

Outras dicas

Por ASP eu suponho que você quer dizer ASP clássico? Tente:

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

O código acima assume que você tem o seu XML em uma variável chamada SXML. Se você está consumindo este através de uma solicitação ServerXMLHttp, você deve ser capaz de usar a propriedade responseXML de seu objeto no lugar do oxml acima e pular a etapa LoadXML completamente.

Você poderia tentar carregar o xml para o objeto xmldocument e depois analisá-lo usando seus métodos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top