使用XmlWriter的具有名称空间的XML

时间:2019-07-19 12:17:57

标签: c# xml

我正在用c#创建XML文档。 我想通过XmlWriter创建此输出。但是我无法获得确切的输出。

这是我需要生成的:

<ITRETURN:ITR xmlns:ITRETURN="http://incometaxindiaefiling.gov.in/main" xmlns:ITR1FORM="http://incometaxindiaefiling.gov.in/ITR1" xmlns:ITRForm="http://incometaxindiaefiling.gov.in/master" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <ITR1FORM:ITR1>
  <ITRForm:CreationInfo>
   <ITRForm:SWVersionNo>R1</ITRForm:SWVersionNo>
   <ITRForm:SWCreatedBy>SW92201920</ITRForm:SWCreatedBy>
   <ITRForm:XMLCreatedBy>SW92201920</ITRForm:XMLCreatedBy>
   <ITRForm:XMLCreationDate>2019-07-19</ITRForm:XMLCreationDate>
   <ITRForm:IntermediaryCity>Delhi</ITRForm:IntermediaryCity>
   <ITRForm:Digest>lOa90+jndV+RYN0ghOemod4eomQDqsSm6tw3w8XWsZQ= </ITRForm:Digest>
  </ITRForm:CreationInfo>
 </ITR1FORM:ITR1>
</ITRETURN:ITR>

如何使用XmlWriter生成?

1 个答案:

答案 0 :(得分:1)

您可以使用以下代码编写该XML:

// Namespace constants
var ITRETURN = @"http://incometaxindiaefiling.gov.in/main";
var ITR1FORM = @"http://incometaxindiaefiling.gov.in/ITR1";
var ITRForm = @"http://incometaxindiaefiling.gov.in/master";
var xsi = @"http://www.w3.org/2001/XMLSchema-instance";

// Enable indenting and disable the XML declaration.
var settings = new XmlWriterSettings
{
    Indent = true,
    IndentChars = " ",
    OmitXmlDeclaration  = true,
};
using (var xmlWriter = XmlWriter.Create(textWriter, settings))
{
    // Write the start element and all namespaces.
    xmlWriter.WriteStartElement("ITRETURN", "ITR", ITRETURN);
    xmlWriter.WriteAttributeString("xmlns","ITRETURN", null, ITRETURN);
    xmlWriter.WriteAttributeString("xmlns","ITR1FORM", null, ITR1FORM);
    xmlWriter.WriteAttributeString("xmlns","ITRForm", null, ITRForm);
    xmlWriter.WriteAttributeString("xmlns","xsi", null, xsi);

    // Write the ITR1 element
    xmlWriter.WriteStartElement("ITR1", ITR1FORM);

    // Write the CreationInfo
    xmlWriter.WriteStartElement("CreationInfo", ITRForm);
    xmlWriter.WriteElementString("SWVersionNo", ITRForm, "R1");             
    xmlWriter.WriteElementString("SWCreatedBy", ITRForm, "SW92201920");             
    xmlWriter.WriteElementString("XMLCreatedBy", ITRForm, "SW92201920");                
    xmlWriter.WriteElementString("XMLCreationDate", ITRForm, "2019-07-19");             
    xmlWriter.WriteElementString("IntermediaryCity", ITRForm, "Delhi");             
    xmlWriter.WriteElementString("Digest", ITRForm, "lOa90+jndV+RYN0ghOemod4eomQDqsSm6tw3w8XWsZQ= ");               
    xmlWriter.WriteEndElement(); // CreationInfo

    xmlWriter.WriteEndElement(); // ITR1

    xmlWriter.WriteEndElement(); // ITR
}

注意:

演示小提琴here