2016-07-12 51 views
-3

我需要建立這種結構的XML:創建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僅限該節點?

+0

https://stackoverflow.com/questions/1772004/how-can-i-make-the-xmlserializer-only-serialize-plain-xml –

+1

谷歌認爲首先在你來到這裏之前,你會得到答案;有大量的博客文章和SO帖子關於如何實現這個 –

回答

0

res命名空間在根目錄映射到http://resource.webservice.correios.com.br/,但是當您創建buscaEventos時,您重映射它。

這可能會解決問題:

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

坦克幫助男人:) –