使用 XmlDocument C# 创建 XML

Create XML with XmlDocument C#

我需要用这个结构创建一个 XML :

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:res="http://resource.webservice.correios.com.br/">
   <soapenv:Header/>
   <soapenv:Body>
      <res:buscaEventos>
         <usuario>ECT</usuario>
         <senha>SRO</senha>
         <tipo>L</tipo>
         <resultado>T</resultado>
         <lingua>101</lingua>
         <objetos>JS331400752BR</objetos>
      </res:buscaEventos>
   </soapenv:Body>
</soapenv:Envelope>

然而这样是错误的:

<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:res="http://resource.webservice.correios.com.br/">
  <soapenv:Header />
  <soapenv:Body>
    <res:buscaEventos xmlns:res="http://schemas.xmlsoap.org/soap/envelope/">
      <usuario>ETC</usuario>
      <senha>SRO</senha>
      <tipo>L</tipo>
      <resultado>T</resultado>
      <lingua>101</lingua>
      <objetos>JS331400752BR</objetos>
    </res:buscaEventos>
  </soapenv:Body>
</soapenv:Envelope>

区别在于buscaEventos

我是通过以下方式创建的 XmlNode eventosNode = xmlDoc.CreateElement ( "res " , " buscaEventos " " http://schemas.xmlsoap.org/soap/envelope/ " ) ; 如何删除 xmlns : 仅保留该节点?

res 命名空间映射到根目录下的 http://resource.webservice.correios.com.br/,但是当您创建 buscaEventos 时,您重新映射了它。

这可能会解决问题:

 XmlNode eventosNode = xmlDoc.CreateElement("res", "buscaEventos"
     "http://resource.webservice.correios.com.br/" ) ;