returnera xmlnode

.NET

4 svar · 430 visningar · startad av doggelito

Medlem sedan juni 20003 076 inlägg
Trådstart#1

vad är fiffigast att använda om jag bara vill returnera apiMsgId ur xmlkoden?

byte[] responseArray = webClient.UploadValues(Url,"POST",nameValueCollection);
return ???;

responseArray innehåller denna xmlkod:
<?xml version="1.0"?>
	<clickAPI>
		<sendMsgResp>
			<apiMsgId>123fhgfhg3fgeg3h4gfg5gfg454f4g5</apiMsgId>
		</sendMsgResp>
	</clickAPI>
Medlem sedan juni 20003 076 inlägg
#2

responseArray innehåller ju all xml-kod så det känns ju som om det borde vara ganska enkelt att plocka ut apiMsgId! :(
Var ska jag börja? XmlReader, XmlTextReader, XmlNodereader? Nån annanstans?

Medlem sedan juni 20003 076 inlägg
#3

kommit en liten bit på väg med denna kod:

XmlDocument xml = new XmlDocument(); 
xml.LoadXml(Encoding.ASCII.GetString(responseArray));
string MsgId = xml.InnerText.ToString();

men, denna kod hämtar väl all text som finns i koden?
så skulle det finnas fler taggar så får jag för många värden i min retur!
kan man kolla om det finns en tagg med ett visst namn finns och hämta dess värde?
borde man inte kunna använda getElementByTagName på nått vis?

well, well, jag testar väl på tills nån berättar hur man SKA göra! :)

Medlem sedan feb. 20002 300 inlägg
#4
string msgId = xml.SelectSingleNode("clickAPI").SelectSingleNode("sendMsgResp").SelectSingleNode("apiMsgId").InnerText;

Är en variant. Kanske du förstår lite hur det är uppbyggt. ;)

Medlem sedan juni 20003 076 inlägg
#5

:)
Kom på denna lösning också:

MsgId = xml.GetElementsByTagName("apiMsgId")[0].InnerText.ToString();
245 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)