2013-04-04 65 views
0

我有以下XML:如何使用XmlTextWriter元素?

<Account> 
    <nr>6134</nr> 
    <name>Summ</name> 
    <Accounting> 
     <income>200</income> 
    </Accounting> 
    <summincome>200</summincome> 
</Account> 

是我的尝试并没有成功:

myXmlTextWriter2.WriteStartElement("Account"); 
myXmlTextWriter2.WriteAttributeString("nr", AccountNumber.ToString()); 
myXmlTextWriter2.WriteAttributeString("name", Name); 

double summ=0; 
foreach (AccountRecord ar in kp) 
{ 
myXmlTextWriter2.WriteStartElement("Accounting"); 
myXmlTextWriter2.WriteAttributeString("income", ar.Amount.ToString()); 
myXmlTextWriter2.WriteEndElement(); 
summ += ar.Amount; 
} 

myXmlTextWriter2.WriteAttributeString("summincome", summ.ToString()); 
myXmlTextWriter2.WriteEndElement(); 

正如你可以看到我输入一个foreach循环计算SUMM和分配给它的值改为“summincome ”。 THX提前为您的窍门

+0

'name'和'summincome'不是属性。 – 2013-04-04 12:31:25

+0

你必须使用TextWriter吗? XElement等人对此更容易。 – 2013-04-04 12:31:58

回答

1

他们不是属性它们是元素

myXmlTextWriter2.WriteStartElement("Account"); 
myXmlTextWriter2.WriteAttributeString("nr", AccountNumber.ToString()); 
myXmlTextWriter2.WriteAttributeString("name", Name); 

double summ=0; 
foreach (AccountRecord ar in kp) 
{ 
myXmlTextWriter2.WriteStartElement("Accounting"); 
myXmlTextWriter2.WriteElementString("income", ar.Amount.ToString()); 
myXmlTextWriter2.WriteEndElement(); 
summ += ar.Amount; 
} 

myXmlTextWriter2.WriteElementString("summincome", summ.ToString()); 
myXmlTextWriter2.WriteEndElement(); 
+0

是的,那是我的错误..thx – Georg 2013-04-04 12:51:17

1

试试这个

using (XmlWriter writer = XmlWriter.Create("accounts.xml")) 
{ 
    writer.WriteStartDocument(); 
    writer.WriteStartElement("Account"); 
    writer.WriteElementString("nr", AccountNumber.ToString()); 
    writer.WriteElementString("name", Name); 

    double summ=0; 
    foreach (AccountRecord ar in kp) 
    { 
    writer.WriteStartElement("Accounting"); 
    writer.WriteElementString("income", ar.Amount.ToString()); 
    writer.WriteEndElement(); 
    summ += ar.Amount; 
    } 
    writer.WriteElementString("summincome", summ.ToString()) 
    writer.WriteEndElement(); 
    writer.WriteEndDocument(); 
} 
+0

This works too too ... thx – Georg 2013-04-04 12:51:42

相关问题