C# 去掉父节点中的xmlns:xsi字段

可使用以下代码:

//Create our own namespaces for the output
XmlSerializerNamespaces ns = new XmlSerializerNamespaces ();
//Add an empty namespace and empty value
ns.Add ("", "");
//Create the serializer
XmlSerializer slz = new XmlSerializer (someType);
//Serialize the object with our own namespaces (notice the overload)
slz.Serialize (myXmlTextWriter, someObject, ns);

 

此外,在评论中还提到了去除开头的<?xml version="1.0" encoding="utf-8"?>的方法:

XmlWriterSettings settings = new XmlWriterSettings ();
// Remove the <?xml version="1.0" encoding="utf-8"?>
settings.OmitXmlDeclaration = true;
XmlWriter writer = XmlWriter.Create ("output_file_name.xml", settings);

另外,如果出现开头没有encoding="utf-8"时,应该使用:
XmlWriterSettings settings = new XmlWriterSettings ();
settings.Encoding = Encoding.UTF8;
XmlWriter writer = XmlWriter.Create ("output_file_name.xml", settings);
C#中如何读取 <?xml version="1.0" encoding="utf-16"?> <ArrayOfPlmClass xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <PlmClass> <ClassId>HHTypeTopMaterial</ClassId> <ClassName>物料</ClassName> <FatherClassId /> <FatherClassName /> <ChangeType>Add</ChangeType> <Company>日立</Company> </PlmClass> <PlmClass> <ClassId>HHTypeA Structure Part</ClassId> <ClassName>日立空调结构件</ClassName> <FatherClassId>HHTypeTopMaterial</FatherClassId> <FatherClassName>物料</FatherClassName> <ChangeType>Add</ChangeType> <Company>日立</Company> </PlmClass> <PlmClass> <ClassId>HHTypeB Structural Parts Of The Outdoor Unit</ClassId> <ClassName>分体室外机结构件</ClassName> <FatherClassId>HHTypeA Structure Part</FatherClassId> <FatherClassName>日立空调结构件</FatherClassName> <ChangeType>Add</ChangeType> <Company>日立</Company> </PlmClass> <PlmClass> <ClassId>HHTypeC Outdoor Upper Cover Plate</ClassId> <ClassName>上盖板</ClassName> <FatherClassId>HHTypeB Structural Parts Of The Outdoor Unit</FatherClassId> <FatherClassName>分体室外机结构件</FatherClassName> <ChangeType>Add</ChangeType> <Company>日立</Company> </PlmClass> <PlmClass> <ClassId>HHTypeD Outdoor Upper Cover Plate1</ClassId> <ClassName>上盖板</ClassName> <FatherClassId>HHTypeC Outdoor Upper Cover Plate</FatherClassId> <FatherClassName>上盖板</FatherClassName> <ChangeType>Add</ChangeType> <FuncLocation>立柱</FuncLocation> <Company>日立</Company> </PlmClass> </ArrayOfPlmClass>这种数据格式的xml文件
03-11
另一个无法使用的接口,返回Response status code does not indicate success: 500 (internal Server Error): public string? resultCode_ = “”; public string? datas_ = “”; public string? msgCode_ = “”; public string? err = “”; /// <summary> /// GET_BASEDATA_INFO /// </summary> /// <param name=“DataType”></param> /// <param name=“Parameter_ID”></param> /// <param name=“URL”></param> public void Tests() { try { string URL = “http://192.168.65.4:5051/JavaInterfaces/UniServices.asmx”; string param = “”; param = "{" + "\"datatype\":\"01\"" + "}"; string soapRequest = $@" <?xml version=""1.0"" encoding=""utf-8""?> <soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/""> <soap:Body> <UniRequest xmlns=""http://tempuri.org/""> <rb> <account>user</account> <optype>0</optype> <param>{param}</param> <password>123456</password> <sericeName>GET_BASEDATA_INFO</sericeName> </rb> </UniRequest> </soap:Body> </soap:Envelope>"; HttpClient client = new HttpClient(); client.Timeout = TimeSpan.FromSeconds(10); HttpContent content = new StringContent(soapRequest, Encoding.UTF8, "text/xml"); // 发送同步的 POST 请求并等待响应 HttpResponseMessage response = client.PostAsync(URL, content).Result; response.EnsureSuccessStatusCode(); string result = response.Content.ReadAsStringAsync().Result; // 解析响应 XDocument doc = XDocument.Parse(result); XNamespace soap = "http://schemas.xmlsoap.org/soap/envelope/"; XNamespace tempuri = "http://tempuri.org/"; string? resultCode = doc.Descendants(tempuri + "result").FirstOrDefault()?.Value; string? datas = doc.Descendants(tempuri + "datas").FirstOrDefault()?.Value; string? msgCode = doc.Descendants(tempuri + "msgCode").FirstOrDefault()?.Value; resultCode_ = resultCode; datas_ = datas; msgCode_ = msgCode; } catch (Exception ex) { err = ex.Message; } }
03-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值