can put me in right direction?
what want output webmethod:
i values database;
1694.152344;1694.092285;1693.972168;1693.852051 2013-07-10 20:00:00;2013-07-10 19:00:00;2013-07-10 18:00:00;2013-07-10 17:00:00 my xml:
<?xml version="1.0" encoding="utf-8"?> <fieldsroot xmlns="http://appserver.weevio.se/schema/sdkr1/fields.xsd"> <fields ok="true" nodeid="test_1.hw"> <numeric value="1694.152344" datum="2013-07-10 20:00:00" status="16" /> <numeric value="1694.092285" datum="2013-07-10 19:00:00" status="16" /> <numeric value="1693.972168" datum="2013-07-10 18:00:00" status="16" /> <numeric value="1693.852051" datum="2013-07-10 17:00:00" status="16" /> </fields> </fieldsroot> my code likes:
[webmethod] public xelement sum2() { xnamespace defaultnamespace = xnamespace.get("http://appserver.weevio.se/schema/sdkr1/fields.xsd"); xelement test = new xelement(new xelement(defaultnamespace + "fieldsroot")); string value = "1694.152344;1694.092285;1693.972168;1693.852051"; string datum = "2013-07-10 20:00:00;2013-07-10 19:00:00;2013-07-10 18:00:00;2013-07-10 17:00:00"; string[] valuea = value.split(';'); string[] datuma = datum.split(';'); int d = 0; foreach (var customer in valuea) { xelement xelement = new xelement(defaultnamespace + "numeric", new xattribute("value", valuea[d]), new xattribute("datum", datuma[d]), new xattribute("status", 16) ); test.add(new xelement(defaultnamespace + "fields", new xattribute("ok", "true"), new xattribute("nodeid", "test.hw"), xelement)); d = d + 1; } return test; } what is:
<?xml version="1.0" encoding="utf-8"?> <fieldsroot xmlns="http://appserver.weevio.se/schema/sdkr1/fields.xsd"> <fields ok="true" nodeid="test.hw"> <numeric value="1694.152344" datum="2013-07-10 20:00:00" status="16" /> </fields> <fields ok="true" nodeid="test.hw"> <numeric value="1694.092285" datum="2013-07-10 19:00:00" status="16" /> </fields> <fields ok="true" nodeid="test.hw"> <numeric value="1693.972168" datum="2013-07-10 18:00:00" status="16" /> </fields> <fields ok="true" nodeid="test.hw"> <numeric value="1693.852051" datum="2013-07-10 17:00:00" status="16" /> </fields> </fieldsroot>
you're adding fields element every time. isn't xml issue, logic issue. problem you're adding hte "fields" element inside loop. build of elements , add them single "fields" element. or, build fields element first , add sub-elements it. here's sample console app showing difference.
using system; using system.collections.generic; using system.linq; using system.text; using system.threading.tasks; using system.xml.linq; namespace consoleapplication2 { class program { static void main(string[] args) { console.writeline(sum2().tostring()); console.writeline(); console.writeline(sum2working().tostring()); console.read(); } public static xelement sum2() { xnamespace defaultnamespace = xnamespace.get("http://appserver.weevio.se/schema/sdkr1/fields.xsd"); xelement test = new xelement(new xelement(defaultnamespace + "fieldsroot")); string value = "1694.152344;1694.092285;1693.972168;1693.852051"; string datum = "2013-07-10 20:00:00;2013-07-10 19:00:00;2013-07-10 18:00:00;2013-07-10 17:00:00"; string[] valuea = value.split(';'); string[] datuma = datum.split(';'); int d = 0; foreach (var customer in valuea) { xelement xelement = new xelement(defaultnamespace + "numeric", new xattribute("value", valuea[d]), new xattribute("datum", datuma[d]), new xattribute("status", 16) ); test.add(new xelement(defaultnamespace + "fields", new xattribute("ok", "true"), new xattribute("nodeid", "test.hw"), xelement)); d = d + 1; } return test; } public static xelement sum2working() { xnamespace defaultnamespace = xnamespace.get("http://appserver.weevio.se/schema/sdkr1/fields.xsd"); xelement test = new xelement(new xelement(defaultnamespace + "fieldsroot")); string value = "1694.152344;1694.092285;1693.972168;1693.852051"; string datum = "2013-07-10 20:00:00;2013-07-10 19:00:00;2013-07-10 18:00:00;2013-07-10 17:00:00"; string[] valuea = value.split(';'); string[] datuma = datum.split(';'); int d = 0; var fields = new list<xelement>(); foreach (var customer in valuea) { xelement xelement = new xelement(defaultnamespace + "numeric", new xattribute("value", valuea[d]), new xattribute("datum", datuma[d]), new xattribute("status", 16) ); fields.add(xelement); d = d + 1; } test.add(new xelement(defaultnamespace + "fields", new xattribute("ok", "true"), new xattribute("nodeid", "test.hw"), fields)); return test; } } } as can see, sum2working() adds elements list , adds list larger element.
Comments
Post a Comment