2014-03-26 32 views
0

我有一個下面的XML數據創建的C#代碼,這是不是我所需的格式。任何人都可以建議如何完成這項工作?Xml格式化和寫入器設置

C#代碼如下:

<?xml version="1.0" encoding="utf-8" ?> 
    - <Request xmlns="http://www.timvw.be/ns"> 
- <MyData> 
    <DATA1>91.689117127891</DATA1> 
    <DATA2>0.18242169290979</DATA2> 
    </MyData> 
    </Request> 

不過,我需要在以下格式的XML數據:

<?xml version="1.0" encoding="utf-16" ?> 
- <Request xmlns="http://www.ABC.com/submit" xmlns:l="http://www.ABC.com/link" l:source="SRC" l:date="2014-03-05"> 
- <MyData l:identifier="PRAV" l:value="151.19448366182007269092408546"> 
    <DATA1 l:value="0.151328110447635" /> 
    <DATA2 l:value="0.6461191930062688087600920641" /> 
    <DATA3 l:value="0.144793773777417" /> 
    </MyData> 
    </Request> 

任何一個可以建議由C#生成

  XmlWriterSettings xmlWriterSettings = new XmlWriterSettings(); 

      xmlWriterSettings.Encoding = Encoding.UTF8; 

      using (XmlWriter writer = XmlWriter.Create("SNP.xml",xmlWriterSettings)) 
      {      
       writer.WriteStartDocument(); 
       writer.WriteStartElement("Request","http://www.ABC.com/submit"); 

       foreach (DataRow row in ExcelData.Rows) 
       { 
        writer.WriteStartElement(ExcelData.Rows[counter]["MyDATA"].ToString()); 


        writer.WriteElementString("DATA1", ExcelData.Rows[counter]["DATA1"].ToString()); 
        writer.WriteElementString("DATA2", ExcelData.Rows[counter]["DATA2"].ToString()); 

        writer.WriteEndElement(); 
       } 
       writer.WriteEndElement(); 
       writer.WriteEndDocument(); 
      } 

數據需要在c#代碼中設置得到

回答

1

如果您需要將值寫入XmlAttribute,請嘗試以下操作:

writer.WriteStartElement("DATA1"); 
writer.WriteAttributeString("l:value", ExcelData.Rows[counter]["DATA1"].ToString()); 
writer.WriteEndElement();