VKontakte рдФрд░ рд╕рдмрд╕реЗ рдЫреЛрдЯреЗ рдХреЗ рд▓рд┐рдП XDocument API

рджрд┐рди рдХрд╛ рдЕрдЪреНрдЫрд╛ рд╕рдордпред

рдореИрдВ рд╡реАрдХреЗ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╕рдмрд╕реЗ рд╕рд░рд▓ рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рд╢реБрд░реБрдЖрддреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдПрдХ рддрд╕реНрд╡реАрд░ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╡рд┐рдз рддрд░реАрдХреЗ рдХреЗ рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ редgetHistory, рдФрд░ XDocument рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ред рдХреЛрдИ рднреА рд╡реНрдпрдХреНрддрд┐ рдЬрд┐рд╕рдиреЗ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдирд╛ рд╕реАрдЦ рд▓рд┐рдпрд╛ рд╣реИ рдФрд░ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдХреГрдкрдпрд╛, рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗред

рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ?

рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рд▓реЙрдЧ рдЗрди рдХрд┐рдпрд╛, рдПрдХ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ред рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ? рдореИрдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЛ рд╡реАрдХреЗ рдПрдкреАрдЖрдИ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╕рд╣рдЬ рд╣реЛрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдЖрдкрдХреЛ рдореВрд▓ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╡рд┐рдзрд┐ рдирд╣реАрдВ рдорд┐рд▓реА, рддреЛ рд╣рдо рдпрд╣рд╛рдВ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдПрдХ рдмрдбрд╝реА рд╕реВрдЪреА рджреЗрдЦрддреЗ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд╕рд╛рде рд╣рдо рдХрд╛рдо рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред

рдЖрдЬ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░рд╛ рдХрд╛рд░реНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рд╕рднреА рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИ, xml рдиреЛрдбреНрд╕ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдФрд░ рд╕рднреА рдкрддреНрд░рд╛рдЪрд╛рд░ рд╕реЗ рддрд╕реНрд╡реАрд░реЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╣реИред рдпрд╣ рдЙрд╕ рдиреЛрдб рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ


рдЬрд╛рд╣рд┐рд░ рд╣реИ, рд╡рд┐рд╡рд░рдг рдореЗрдВ рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рдЧрднрдЧ рд╕рднреА рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рд╣реИред рддреЛ рдЖрдЗрдП рджреЗрдЦреЗрдВ:
рд╡рд┐рд╡рд░рдг:
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╛ рд╕рдореВрд╣ рд╡рд╛рд░реНрддрд╛рд▓рд╛рдк рдХреЗ рд▓рд┐рдП рд╕рдВрджреЗрд╢ рдЗрддрд┐рд╣рд╛рд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред

рдкрд░рд┐рдгрд╛рдо:
рд╕рдВрджреЗрд╢ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдПрдХ рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╛ рд╕рдореВрд╣ рд╡рд╛рд░реНрддрд╛рд▓рд╛рдк рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрд╡рд╛рдж рдореЗрдВ рдирд┐рдЬреА рд╕рдВрджреЗрд╢ред рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрджреЗрд╢ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдлрд╝реАрд▓реНрдб рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз рд╣реИред


рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ 6 рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ 2 рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ:

рдпреВрдЖрдИрдбреА рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИред рд╕рд░реНрд╡рд░ рдХреЛ рдпрд╣ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╣рдо рдХрд┐рд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕рдВрджреЗрд╢ рдЗрддрд┐рд╣рд╛рд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рд╣рдордиреЗ рдЬреЛ рдпреВрдЖрдИрдбреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИ, рдЙрд╕рдореЗрдВ chat_id - рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ред
рдСрдлрд╕реЗрдЯ - рдЪрдпрди рдХреЗ рд▓рд┐рдП рдСрдлрд╕реЗрдЯред рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ рддреЛ рд╡рд╣ рдкреИрд░рд╛рдореАрдЯрд░, рдЬрд┐рд╕рдХреЗ рдмрд┐рдирд╛ рд╣рдо рдПрдХ рдЙрддреНрддрд░ рдореЗрдВ 200 рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╕реАрдорд╛ рдХреЗ рдХрд╛рд░рдг рдПрдХ рдмрдбрд╝рд╛ рдкрддреНрд░рд╛рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗред
рдЧрд┐рдирддреА рдЙрди рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬреЛ рд╣рдо рд╕рд░реНрд╡рд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдкреНрд░рддрд┐ рдЕрдиреБрд░реЛрдз 200 рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╕реАрдорд╛ рдпрд╛рдж рд░рдЦреЗрдВред
start_mid - рд╕рдВрджреЗрд╢ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдмрд╛рдж рдХреЗ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдХреГрдкрдпрд╛ рдЧрд┐рдирддреА рдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд рди рдХрд░реЗрдВред рдЗрд╕ рддрд░реНрдХ рдореЗрдВ рд╣рдо рд╕рдВрджреЗрд╢ рдЖрдИрдбреА рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ, рди рдХрд┐ рдЗрд╕рдХрд╛ рдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ред
Rev - рд╣рдореЗрдВ рдХрд┐рд╕ рд╕рдВрджреЗрд╢ рд╕реЗ рдкрддреНрд░рд╛рдЪрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдВрддрд┐рдо рдпрд╛ рдкреНрд░рдердоред 0 рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рд░рд┐рд╡рд░реНрд╕ рдХрд╛рд▓рд╛рдиреБрдХреНрд░рдорд┐рдХ рдХреНрд░рдоред

рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣

рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ, рд╣реИ рдирд╛? рдЪрд▓реЛ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдПрдВред
рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдо LINQ рд╕реЗ XML рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рдЖрд╡рд╢реНрдпрдХ рдирд╛рдорд╕реНрдерд╛рди рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ

using System.Xml.Linq; 


рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, XML рдкрд╛рд░реНрд╕рд░ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИред рддреЛ рдЖрдЗрдП рдЗрд╕реЗ рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ

 XDocument doc; 


рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛? рдлрд┐рд░ рдЬрд╛рд░реА рд░рдЦреЗрдВред рд╣рдореЗрдВ рдпрд╛рдж рд╣реИ рдХрд┐ рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдкрддреНрд░рд╛рдЪрд╛рд░ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдСрдлрд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдСрдлрд╝рд╕реЗрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдлрд┐рд░ рдПрдХ рдХрд╛рдЙрдВрдЯрд░ рдмрдирд╛рдПрдВ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдореЗрдВ 200 рдХреА рд╡реГрджреНрдзрд┐ рдХрд░реЗрдЧрд╛ред рдФрд░ рдмрдЪрдд рдХрд░рддреЗ рд╕рдордп рдЧрддрд┐рд╢реАрд▓ рдлреЛрдЯреЛ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рдЙрдВрдЯрд░ рднреА рдмрдирд╛рдПрдВ

 int m=0; int k=0; 


рдмреЗрд╢рдХ, WebClient рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордд рднреВрд▓рдирд╛, рдЬреЛ рд╣рдореЗрдВ рдПрдХ рдлреЛрдЯреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред

 WebClient src_client = new WebClient(); 


рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ рддрд╛рдХрд┐ рдЙрджрд╛рд╕реАрди рддрд╕реНрд╡реАрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕рд╛рде рдЕрдиреНрдп рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд░реЛрдХрдирд╛ рди рд╣реЛред
 Directory.CreateDirectory("img/"); 


рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрднреА рднреА рд╕рдлрд▓ рд╣реЛрдВрдЧреЗред рдФрд░ рдЕрдм рдордЬрд╝реЗрджрд╛рд░ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд▓рд┐рдПред рдЕрдм рд╣рдо рд╕рд░реНрд╡рд░ рд╕реЗ рдПрдХ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЙрд╕реЗ рдпрд╣ рддрд░реНрдХ рджреЗрдВрдЧреЗ рдХрд┐ рд╣рдореЗрдВ рдЕрдкрдиреЗ рдХрд╛рд░реНрдп рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

 doc = XDocument.Load("https://api.vk.com/method/messages.getHistory.xml?uid=123456&offset=" + m + "&count=200&access_token=" + token); 


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдордиреЗ message.getHistory рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдкреНрдд .xml рдбреЗрдЯрд╛ рдХрд╛ рдкреНрд░рд╛рд░реВрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдерд╛ред рдпрд╣ рдЖрдорддреМрд░ рдкрд░ JSON рджреЗрддрд╛ рд╣реИ рдХрд┐ LINQ to XML рд╣реИрдВрдбрд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╣рдордиреЗ рдЙрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдпреВрдЖрдИрдбреА рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рдПрдХ рдХрд╣рд╛рдиреА рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдФрд░ рд╣рд╛рдВ, рдСрдлрд╕реЗрдЯ , рдЬрд┐рд╕реЗ рд╣рдо рд╣рд░ рдмрд╛рд░ рдмрджрд▓реЗрдВрдЧреЗ рдЬрдм рддрдХ рд╣рдо рдЕрдВрдд рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрддреЗред рдЧрд┐рдирддреА рдПрдХ рдЖрдк рдХреА рдЬрд░реВрд░рдд рд╣реИред рд▓реЗрдХрд┐рди рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ 200 рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ, рдЕрдиреНрдпрдерд╛ рд╕рд░реНрд╡рд░ рдердХ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЖрд░рд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдПрдЧрд╛ рд╣рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рд╡рд╛рдкрд╕ рдХрд░реЗрдЧрд╛ред рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╣рдо рдЯреЛрдХрди рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдВрдЧреЗред

XML рдХрд╛ рдХрд╛рдо

рдЕрдм рдЪрдХреНрд░ рдкрд░ рд╣реА рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдореИрдВ рдЕрдиреБрдХреВрд▓рд┐рдд рдХреЛрдб рдХрд╛ рджрд┐рдЦрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рдФрд░ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реА рддрд░рд╣ рдХреЗ XML рдХреЗ рд▓рд┐рдП рдкрд╛рд░реНрд╕рд░ рдХреЗ рд╡рд┐рд╕реНрддреГрдд рдХрд╛рдо рдХреЛ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

 while (true) { doc = XDocument.Load("https://api.vk.com/method/messages.getHistory.xml?uid=12345&offset=" + m + "&count=200&access_token=" + token);//   xml      foreach (XElement el in doc.Root.Elements())//    { //         if (el.Name.ToString() == "message") { foreach (XElement el_msg in el.Elements())//    message { //     if (el_msg.Name == "attachment") { foreach (XElement el_attch in el_msg.Elements()) { //     ,   ,    if (el_attch.Name == "photo") { foreach (XElement el_photo in el_attch.Elements()) { //     if (el_photo.Name == "src_xbig") { //    img/ src_client.DownloadFile(el_photo.Value, "img/img" + k + ".jpg"); k++; } } } } } } } } //      count m += 200; } 


LINQ

LINQ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП Atreides07 рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореИрдВрдиреЗ рдЗрд╕реЗ рддреБрд░рдВрдд рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрд╛ред
 while (true) { var doc = XDocument.Load("https://api.vk.com/method/messages.getHistory.xml?uid=12345&offset=" + m + "&count=" + n + "&access_token=" + token);//   xml      var photoElements= doc.Root.Elements("message") .SelectMany(el => el.Elements("attachment") .SelectMany(el_msg => el_msg.Elements("photo") .SelectMany(elAttch => elAttch.Elements("src_xbig")))); foreach (var el_photo in photoElements) { //    img/ src_client.DownloadFile(el_photo.Value, "img/img" + k + ".jpg"); k++; } //      count m += n; } 


XPath

 using System.Xml.XPath; 

рдореБрдЭреЗ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ XPath рд╡рд┐рдХрд▓реНрдк рджрд┐рдЦрд╛рдиреЗ рд▓рд╛рдпрдХ рд╣реИред
  //   XPathDocument document_x = new XPathDocument("https://api.vk.com/method/messages.getHistory.xml?uid=12345&offset=" + m + "&count=200&access_token=" + token); XPathNavigator navigator = document_x.CreateNavigator(); //  string str_exp = "//message//attachment//photo//src_big"; XPathExpression expres = XPathExpression.Compile(str_exp); XmlNamespaceManager manager = new XmlNamespaceManager(navigator.NameTable); expres.SetContext(manager); XPathNodeIterator nodes = navigator.Select(expres); while (nodes.MoveNext())//    src_client.DownloadFile(nodes.Current.ToString(), "img/imj" + k + ".jpg");//  

рдмреЗрд╢рдХ, рдЪрдХреНрд░ рдФрд░ рдореАрдЯрд░ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордд рднреВрд▓рдирд╛ред

рдмрд╕ рдЗрддрдирд╛ рд╣реАред рд╣рдо рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдЦреЛрд▓рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд╕реЗ рд╣рдорд╛рд░рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, img рдлрд╝реЛрд▓реНрдбрд░ рдвреВрдВрдвреЗрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВред

рдирд┐рд╖реНрдХрд░реНрд╖

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, VKontakte рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ, рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ LINQ рд╕реЗ XML рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдпрд╣ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдФрд░ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдЖрд╢рд╛ рд╣реИ рдЖрдкрдХреЛ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ рд╣реЛрдЧрд╛ред рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдХреГрдкрдпрд╛ рд▓реЗрдЦ рдХреЗ рдХрд┐рд╕реА рджреЛрд╖ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдВред рдореИрдВ рдЕрдзреНрдпрдпрди рдХрд░реВрдВрдЧрд╛ред

Source: https://habr.com/ru/post/In173421/


All Articles