2013-07-26 60 views
2

我正在開發一個c#應用程序。 我需要在此表單中編寫公司產品詳細信息。一家公司可能有多個產品,一個XML文件可能只包含一家公司。所以每個公司一個XML文件。用多行寫入xml

<?xml version="1.0" encoding="utf-8" ?> 
<list> 
    <CompanyName>Test</CompanyName> 
    <CompanyID>TestID</CompanyID> 
    <Product> 
    <ProductName>Prod</ProductName> 
    <ProductID>ProdID</ProductID> 
    <Expire>10.10.2010</Expire> 
    </Product> 
    <Product> 
    <ProductName>Prod2</ProductName> 
    <ProductID>ProdID2</ProductID> 
    <Expire>11.10.2010</Expire> 
    </Product> 
    <Product> 
    <ProductName>Prod3</ProductName> 
    <ProductID>ProdID3</ProductID> 
    <Expire>12.10.2010</Expire> 
    </Product> 
</list> 

如何讓一個xml文件在c#中有3個屬性?

我將不勝感激您的幫助。

問候

+0

而你的問題是什麼? –

+1

看看這裏:http://stackoverflow.com/questions/284324/what-is-the-best-way-to-build-xml-in-c-sharp-code – christiandev

+0

@Garath現在編輯帖子:) – Alasse

回答

2

如果你問如何寫在C#中的XML文件,那麼你必須寫一個類提供XML屬性類和它的屬性,然後序列化類。與所有數據之類的

實例將被序列化到XML:

這裏是你的情況的例子。

[XmlType(TypeName = "CompanyXml")] 
public class Company : ISerializable 
{ 
    [XmlElement("Product")] 
    public List<Product> ListProduct { get; set; } 

    [XmlElement("CompanyName")] 
    public string CompanyName { get; set; } 

    [XmlElement("CompanyID")] 
    public string CompanyID { get; set; } 
} 

產品類是什麼樣子:

[XmlType(TypeName = "Product")] 
public class Product : ISerializable 
{ 
    [XmlElement("ProductName")] 
    public string ProductName { get; set; } 

    [XmlElement("ProductID")] 
    public string ProductID { get; set; } 

    [XmlElement("Expires")] 
    public string Expires { get; set; } 
} 

序列化代碼可能如下:

using (StringWriter stringWriter = new StringWriter()) 
{ 
    XmlSerializer serializer = new XmlSerializer(typeof(Company)); 
    serializer.Serialize(stringWriter, companyInstance); 
    XmlDocument xDoc = new XmlDocument(); 
    xDoc.LoadXml(stringWriter.ToString()); 
} 
+0

謝謝你正在尋找什麼。 – Alasse

+0

歡迎您:-) – Irfan