Как написать 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);