Как написать XML в C#?

<Account nr="401" name="Wasser/Abwasser" income="0.00" expenditure="1,310.74" saldo="-1,310.74" resultText="Es wurden ausgegeben">
    <Accounting date="15.02." refNr="....." description="I/2013"  income="" expenditure="1,310.74" vat="10%" pretax="131.07"/>
  </Account>

Я могу использовать XmlTextWriter, но не знаю, как продолжить с nr,name.....

myXmlTextWriter.WriteStartElement("Account");.....
myXmlTextWriter.WriteElementString("Accounting",......

Спасибо

3 ответа

Решение

Вы хотите выпустить WriteAttributeString:

myXmlTextWriter.WriteAttributeString(null, "nr", null, "401");
myXmlTextWriter.WriteEndElement();

и сделать это сразу после WriteStartElement,

Вы также можете использовать эту перегрузку:

myXmlTextWriter.WriteAttributeString("nr", "401");

и, конечно, повторить это для всех других атрибутов. И это будет работать так же и для дочернего узла.

Попробуйте использовать XElement конец XAttribute классы. Они являются частью LINQ to XML и значительно упрощают работу с XML.

var xml = new XElement("Account",
              new XAttribute("nr", 401),
              new XAttribute("name", "Wasser/Abwasser"),
              new XElement("Accounting",
                  new XAttribute("date", "15.02."),
                  new XAttribute("refNr", "...")));

Тот возвращается .ToString():

<Account nr="401" name="Wasser/Abwasser">
  <Accounting date="15.02." refNr="..." />
</Account>

Заполните остальные атрибуты, следуя шаблону, и вы получите то, что хотите.

Используя LINQ to XML, вы можете сделать это очень просто:

var document = new XDocument( 
                   new XElement("Account",
                       new XAttribute("nr", 401),
                          ...));
document.WriteTo(myXmlTextWriter);
Другие вопросы по тегам