webForumDet fria alternativet
Logga in / Bli medlem

returnera xmlnode

.NET

4 svar · 421 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();
332 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
197 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
201 ms — ändringar (db)