webForumDet fria alternativet

returnera xmlnode

4 svar · 421 visningar · startad av doggelito

doggelitoMedlem sedan juni 20003 100 inlägg
#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>
doggelitoMedlem sedan juni 20003 100 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?

doggelitoMedlem sedan juni 20003 100 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! :)

PhorpherMedlem sedan feb. 20002 059 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. ;)

doggelitoMedlem sedan juni 20003 100 inlägg
#5

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

MsgId = xml.GetElementsByTagName("apiMsgId")[0].InnerText.ToString();
Genererad på 380 ms · cache AV · v20260730165559-full.f96bc7eb