Я создаю XML (см функцию ниже):Не добавляйте XElement, если значение равно 0
public static string CreteInvoice()
{
string _dc;
Mark pm = new Mark();
XNamespace tu = "http://www.name.com";
var item = QueryDb.InvoiceHeader;
var TaxNr = QueryDb.MyCertificates.FirstOrDefault();
_dc = TaxNr.CertificateTaxNumber;
XElement root = new XElement(tu + "InvoiceRequest",
new XAttribute(XNamespace.Xmlns + "tu", "http://www.test.com/"),
new XAttribute("Id", "data"),
new XElement(tu + "Header",
new XElement(tu + "MessageID", item.XMLMessageID),
new XElement(tu + "DateTime", item.DateSentToFurs.ToString("yyyy-MM-ddTHH:mm:ss"))),
new XElement(tu + "Invoice",
new XElement(tu + "TaxNumber", _dc),
new XElement(tu + "IssueDateTime", item.DateOfInvoiceCreation.ToString("yyyy-MM-ddTHH:mm:ss")),
new XElement(tu + "NumberingStructure", item.NumberingStructure),
new XElement(tu + "InvoiceIdentifier",
new XElement(tu + "BusinessPremiseID", item.BussinesspremiseID),
new XElement(tu + "ElectronicDeviceID", item.ElectronicDeviceID),
new XElement(tu + "InvoiceNumber", item.InvoiceNumber)
// ,new XElement(tu + "TaxNrSeller", item.TaxNrSeller) <- problem when item.TaxNrSeller is 0 or empty
)
));
XDocument xdoc = new XDocument(new XDeclaration("1.0", "UTF-8", ""));
xdoc.Add(root);
string xdocText = xdoc.Declaration.ToString().Remove(36, 14) + "\n" + xdoc.ToString();
return xdocText;
}
В коде (выше) я пометил, где я должен создавать XElement
только: если item.TaxNrSeller
отличается чем 0
. Если item.TaxNrSeller
is 0
тег TaxNrSeller
не должен применяться.
Если вам нужна дополнительная информация, пожалуйста, дайте мне знать!