c# Soap in xml file -


i need create .xml files store in folder computer come , pick up. have figure out except how following included in file:

<soap:envelope xlmns=(i have namespace text figured out)>   <soap:body> . . .   </soap:body> </soap:envelope> 

how incorporate soap:body , soap:envelope elements file??

here code

  string[] source = file.readalllines(sallfilename);   file.delete(sallfilename);   //  create message type 3   xelement msg3 = new xelement(@"soap:envelope",       str in source       let fields = str.split(',')       select new xelement(@"soap:body",           new xelement("report_info",               new xelement("message_no", temp3),               new xelement("message_type", "3"),               new xelement("batch_no", sidataforcsv[0]),               new xelement("product_datum",                   new xelement("test_data",                       new xelement("norm_type", fields[3]),                       new xelement("sample_id", fields[4]),                       new xelement("result_source", fields[5]),                       new xelement("entered_by", fields[6]),                       new xelement("reported", fields[7]),                       new xelement("result", fields[8])                       )                   )               )           )       ); 

the error message says "can't have : in name"

the soap: namespace prefix, have handle differently when building xelement - can't put "soap:element name" in there.

you can use xnamespace set xmlns namespace, , prepend element name. use xattribute set namespace prefix.

try this:

xnamespace soap = "http://www.w3.org/2003/05/soap-envelope"; xelement msg3 = new xelement(soap + @"envelope",                     new xattribute(xnamespace.xmlns + "soap", "http://www.w3.org/2003/05/soap-envelope"),                       str in source                       let fields = str.split(',')                       select new xelement(soap + @"body", 

this give you

<soap:envelope xmlns=http://www.w3.org/2003/05/soap-envelope>   <soap:body>   </soap:body> </soap:envelope> 

added

to add xml declaration can switch xelement xdocument , use xdeclaration property:

xnamespace soap = "http://www.w3.org/2003/05/soap-envelope"; xdocument msg3 = new xdocument("1.0", "utf-8", "yes"),                    new xelement(soap + @"envelope",                       new xattribute(xnamespace.xmlns + "soap", "http://www.w3.org/2003/05/soap-envelope"),                         str in source                         let fields = str.split(',')                         select new xelement(soap + @"body", 

this give xdocument xml declaration this:

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 

if @ in debugger, may not see xml declaration if @ xdeclaration property in debugger or save file (via save(string filename) method will.


Comments

Popular posts from this blog

javascript - RequestAnimationFrame not working when exiting fullscreen switching space on Safari -

Python ctypes access violation with const pointer arguments -