2013-02-13 2 views
0

현재 프로젝트에서 XML 형식의 저장 프로 시저에 값 ("PFOID"및 "Quantity")을 전송하고 있습니다.XML을 문자열로 변환

필요한 XML 형식으로 내 코드는 다음과 같습니다이

<string> 
      <PFOID>04676723-2afb-49ff-9fa1-0131cabb407c</PFOID> 
      <Quantity>90</Quantity> 
</string> 

같은 것입니다.

internal void UpdateQuantity(PFO pfo) 
    { 

     string pfoIds = "&lt;PFO&gt;" + "&lt;PFOID&gt;" + pfo.PFOId.ToString() + "&lt;/PFOID&gt;" + " " + "&lt;Quantity&gt;" + pfo.PlannedQty.ToString() + "&lt;/Quantity&gt;" + "&lt;/PFO&gt;"; 

     //pfoIds = pfoIds.Replace("&lt;","<").Replace("&gt;",">"); 

     // string pfoIds = pfo.PFOId.ToString() + pfo.PlannedQty.ToString(); 
     //XDocument d = new XDocument(pfoIds, 
     //        new XElement 
     //         ("PFO", 
     //          new XElement("PFOID", pfo.PFOId.ToString()), 
     //          new XElement("Quantity", pfo.PlannedQty.ToString()) 
     //         ) 
     //        ); 

     List<string> pfoIdList = new List<string>(); 
     pfoIdList.Add(pfoIds); 
     XmlSerializer serializer = new XmlSerializer(pfoIdList.GetType()); 

     StringBuilder xmlString = new StringBuilder(); 
     XmlWriterSettings settings = new XmlWriterSettings(); 
     settings.OmitXmlDeclaration = true; 
     settings.Encoding = new UTF8Encoding(); 
     XmlWriter writer = XmlWriter.Create(new StringWriter(xmlString), settings); 

     //XDocument xDoc = XDocument.Load(pfoIds); 
     //XmlNode xNode = xmlDoc.SelectSingleNode("PFOID", "Quantity"); 
     //string onlyvalue = xNode.InnerText; 


     //System.Xml.Linq.XDocument xDoc = new XDocument(); 
     ////System.Xml.Linq.XNode xNode =new System.Xml.Linq.XDocument(); 

     //XmlDocument xmlDoc = new XmlDocument(); 
     //xmlDoc.Load(pfoIds); 

     //XmlNode xNode = xmlDoc.SelectSingleNode("PFOID", "Quantity"); 
     //string onlyvalue = xNode.InnerText; 


     //serializer.WriteObject(writer, SelectedStoreIds.ToArray()); 
     serializer.Serialize(writer, pfoIdList); 

     if (writer != null) 
      writer.Close(); 

     xmlString.ToString(); 

     {    
      Context.PFOValidateUpdateData(xmlString.ToString(), WebContext.Current.User.UserID, op => 
       { 
        IsProcessing = false; 
        if (ValidateUpdateCompleted != null) 
         ValidateUpdateCompleted(this, EventArgs.Empty); 
       }, null); 
     } 
    } 
} 
} 

나는 그것의 라이브러리에서 이러한 확장이 XmlDocumentXmlNodes하지만 불행히도 실버 system.xml을 어셈블리를 해달라고 사용했습니다.

누구나 나를 도와 줄 수 있습니까? 제발, 당신에게 정말 좋을 것입니다. 고맙습니다.

이렇게 보입니다 ... 죄송합니다. 사이에 공백을 사용했습니다 & lt; & lt; PFOID > "04676723-2afb-49ff-9fa1-0131cabb407c & lt;/PFOID & gt" & lt; 수량 & gt; "lt;/수량 & gt"

+0

XML로 직렬화하기 위해'System.Data.Dataset' 객체를 사용하는 것은 어떻습니까? – HuorSwords

+0

시간이별로 없지만 [this] (http://stackoverflow.com/questions/9717042/custom-net-xml-dictionary-key-value-serialization)가 도움이 될 수 있는지 알아 보시기 바랍니다. –

답변

1

나는 당신에게 가능한 해결책이 될지 모르지만 이런 식으로 시도 할 수 있습니다.

// Create a DataSet with one table containing two columns. 
DataSet dataSet = new DataSet("dataSet"); 
DataTable table = dataSet.Tables.Add("string"); 

table.Columns.Add("PFOID", typeof(string)); 
table.Columns.Add("Quantity", typeof(value)); 

DataRow row; 

row = table.NewRow(); 
row["PFOID"]= "04676723-2afb-49ff-9fa1-0131cabb407c"; 
row["Quantity"]= 90; 

table.Rows.Add(row); 

// Display the DataSet contents as XML. 
Console.WriteLine(dataSet.GetXml()); 
+0

시도해 보겠습니다. 대단히 감사합니다. – Karthik

+0

귀하의 질문에 대한 정답 인 경우이 답변을 유효한 것으로 표시해주십시오. – HuorSwords