2010-11-04 1 views
0

Я использую классический «ASP», не до меня. Просто havent смог сделать переход к .Net еще. Я просто изучаю мыло и успешно создаю запрос SOAP к веб-сервису. Однако я не могу понять, как анализировать ответ и вытаскивать один узел. Я использую MS DOM для загрузки ответа в документ. Я могу получить ответ на экран. Я пробовал следующее, но я не могу получить ни одного node_text отдельно.msxml Анализ парного мыла с использованием MS DOM и классического asp

'Set the XML Object 
Set xmlDoc = Server.CreateObject("Microsoft.XMLDOM") 

'Set Asynchoronous = false 
xmlDoc.async = False 

'Load the XML file. 
'User Server.MapPath method is the XML is located in your site. 
'Else you can use the absolute path. 

xmlDoc.Load (strResult) 

'If there is any errors pasring the file the notify 

If xmlDoc.parseError.errorCode = 0 Then 

Response.Write "Error Parsing XML" 

Response.Write "Rason :" & xmlDoc.parseError.reason & "Error Line: " & xmlDoc.parseError.line 

End If 

'Get ALL the Elements by the tag name book 

Set sessionid = xmlDoc.getElementsByTagName("session_id") 

'Now Iterate through the List and Display 
response.write"sessionid ="&sessionid&"<BR>" 
For i = 0 to (sessionid.Length-1) 
    Response.Write "session_id " & sessionid.item(i).childNodes(0).text & "<br/>" 

Next 

Вот ответ, который я пытаюсь разобрать

<ns:getSessionResponse xmlns:ns="http://services.axis.openmeetings.org"> 
    <ns:return xmlns:ax217="http://basic.beans.data.app.openmeetings.org/xsd" 
       xmlns:ax218="http://basic.beans.hibernate.app.openmeetings.org/xsd" 
       type="org.openmeetings.app.hibernate.beans.basic.Sessiondata"> 
     <ax218:id>71</ax218:id> 
     <ax218:language_id xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true" /> 
     <ax218:organization_id xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true" /> 
     <ax218:refresh_time>2010-11-04T15:17:13.717Z</ax218:refresh_time> 
     <ax218:sessionXml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true" /> 
     <ax218:session_id>5f0415d9cdb72681816095debf3735de</ax218:session_id> 
     <ax218:starttermin_time>2010-11-04T15:17:13.717Z</ax218:starttermin_time> 
     <ax218:storePermanent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true" /> 
     <ax218:user_id xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true" /> 
    </ns:return> 
</ns:getSessionResponse> 

мне нужно вытащить session_id из этого Паре, но только не кажется, чтобы быть в состоянии сделать это. И да, я хочу скоро перейти на .NET.

+0

Форматирование примера ответа, похоже, было потеряно в переводе. Можете ли вы снова включить ответ XML? – jveazey

ответ

0

Если strResult является URL в файл XML, то вы можете использовать:

xmlDoc.Load(strResult) 

Но если strResult представляет содержание XML, вам нужно использовать:

xmlDoc.LoadXML(strResult) 

Для получения дополнительной информации, обратитесь к MSDN.