2017-03-01 80 views
0

如何從少數變量創建列表時遇到問題。 即:C#:如何從幾個字符串變量中創建一個列表,並將其放到SOAP字符串中

var pos = "1; 2; 3" 
var des = "aaa; bbb; ccc" 
var pcs = "1.000; 44.000; 65.000" 

我需要把這個東西就像列表,我可以使用肥皂串塊這個數據。從這些變量

數據是一個發票行像:

pos; des; pcs 
1; aaa; 1.000 
2; bbb; 44.000 
3; ccc; 65.000 

最後,我必須把這個線以塊這樣的SOAP消息(一條線是一個RECEIVE_EINVOICE_LINE塊必須以量被複制線):

<urn:LINES> 
     <urn:RECEIVE_EINVOICE_LINE> 
      <!--Optional:--> 
      <urn:C00></urn:C00> <!-- pos--> 
      <!--Optional:--> 
      <urn:C14></urn:C14> <!-- des--> 
      <!--Optional:--> 
      <urn:D00></urn:D00> <!-- pcs--> 
     </urn:RECEIVE_EINVOICE_LINE> 
     <urn:RECEIVE_EINVOICE_LINE> 
      <!--Optional:--> 
      <urn:C00></urn:C00> <!-- pos--> 
      <!--Optional:--> 
      <urn:C14></urn:C14> <!-- des--> 
      <!--Optional:--> 
      <urn:D00></urn:D00> <!-- pcs--> 
     </urn:RECEIVE_EINVOICE_LINE> 
    </urn:LINES> 

我真的noob,但我需要這樣做。

我有一個想法,把這些行放入列表中,但我不知道如何從這些變量中分離數據,然後合併它並將數據放入此soap消息。

我試圖拆正常,但我有這樣的事情stucked:

class Program 
{ 

    public void Pozycja(string pos) 
    { 
     var pos = "1; 2; 3"; 
     List<string> result = pos.Split(';').ToList(); 
    } 

    public void Opis(string des) 
    { 
     var des = "aaa; bbb; ccc"; 
     List<string> result = des.Split(';').ToList(); 
    } 

    public void Ilosc(string pcs) 
    { 
     var pcs = "1; 2; 3"; 
     List<string> result = pcs.Split(';').ToList(); 
    } 

} 

對不起,我的英語,我盡力! :)

回答

0

這裏是生產所需的XML樣本:

var pos = "1; 2; 3"; 
var des = "aaa; bbb; ccc"; 
var pcs = "1.000; 44.000; 65.000"; 

var posList = pos.Split(';').ToList(); 
var desList = des.Split(';').ToList(); 
var pcsList = pcs.Split(';').ToList(); 

var sb = new StringBuilder(); 

using (var xw = XmlWriter.Create(sb, new XmlWriterSettings { OmitXmlDeclaration = true })) 
{ 
    var ns = "http://www.example.com"; 
    var prefix = "urn"; 

    xw.WriteStartElement(prefix, "LINES", ns); 

    for (int i = 0; i < posList.Count; i++) 
    { 
     xw.WriteStartElement(prefix, "RECEIVE_EINVOICE_LINE", ns); 

     xw.WriteElementString(prefix, "C00", ns, posList[i]); 
     xw.WriteElementString(prefix, "C14", ns, desList[i]); 
     xw.WriteElementString(prefix, "D00", ns, pcsList[i]); 

     xw.WriteEndElement(); 
    } 

    xw.WriteEndElement(); 
} 

var soapMessage = sb.ToString(); 
相關問題