添加<?xml version =" 1.0"编码= QUOT; UTF-8英寸独立= QUOT;是"?>到我的xml响应 [英] Add <?xml version="1.0" encoding="UTF-8" standalone="yes"?> to my xml response

查看:231
本文介绍了添加<?xml version =" 1.0"编码= QUOT; UTF-8英寸独立= QUOT;是"?>到我的xml响应的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在与这个老问题作斗争,无法做到正确。我希望我的xml输出有 


<?xml version =" 1.0"编码= QUOT; UTF-8英寸独立= QUOT;是"?>在标题中。我一直在<?xml version =" 1.0"?>只要。我通过将以下代码添加到WebApiConfig.cs来剥离格式化程序


  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; config.Formatters.Clear();

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; config.Formatters.Add(new IgnoreNamespacesXmlMediaTypeFormatter());

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; config.Formatters.XmlFormatter.UseXmlSerializer = true;

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; config.Formatters.XmlFormatter.WriterSettings.OmitXmlDeclaration = false;

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; config.Formatters.XmlFormatter.WriterSettings.Encoding = System.Text.Encoding.UTF8;


我在XMLHelper中插入.WriteStartDocument(true) -


  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP;&NBSP;

  &NBSP; &NBSP; &NBSP; public static string Serialize(object objectInstance)

  &NBSP; &NBSP; &NBSP; {

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; string txt ="" ;;
$


  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; var emptyNamepsaces = new XmlSerializerNamespaces(new [] {XmlQualifiedName.Empty});

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; var serializer = new XmlSerializer(objectInstance.GetType());

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; var settings = new XmlWriterSettings();

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; settings.OmitXmlDeclaration = false;

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; //settings.Encoding = new UTF8Encoding(false);

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; settings.ConformanceLevel = ConformanceLevel.Document;



  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; var memoryStream = new MemoryStream();

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP;使用(var writer = XmlWriter.Create(memoryStream,settings))

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; {

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; writer.WriteStartDocument(true);

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; serializer.Serialize(writer,objectInstance,emptyNamepsaces);

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; txt = Encoding.UTF8.GetString(memoryStream.ToArray());

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; }¥b $ b  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; return txt;

  &NBSP; &NBSP; &NBSP; } b $ b


请帮忙!



解决方案

 XmlDocument xml = new XmlDocument(); 
XmlNode docNode = xml.CreateXmlDeclaration(" 1.0"," UTF-8 \" standalone = \" yes","");
xml.AppendChild(docNode);
Console.WriteLine(" Header:" + xml.OuterXml);



试一试。 (P lease d 如果它是您想要的答案,请不要忘记作为答案。)




$


$




I've been battling with this old problem and can't get it right. I want my xml output to have 

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> in the header. I keep having <?xml version="1.0"?> only. I have stripped the formatters by adding the following codes to WebApiConfig.cs

            config.Formatters.Clear();
            config.Formatters.Add(new IgnoreNamespacesXmlMediaTypeFormatter());
            config.Formatters.XmlFormatter.UseXmlSerializer = true;
            config.Formatters.XmlFormatter.WriterSettings.OmitXmlDeclaration = false;
            config.Formatters.XmlFormatter.WriterSettings.Encoding = System.Text.Encoding.UTF8;

and I have inserted .WriteStartDocument(true) in my XMLHelper -

            

        public static string Serialize(object objectInstance)
        {
            string txt = "";

            var emptyNamepsaces = new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty });
            var serializer = new XmlSerializer(objectInstance.GetType());
            var settings = new XmlWriterSettings();
            settings.OmitXmlDeclaration = false;
            //settings.Encoding = new UTF8Encoding(false);
            settings.ConformanceLevel = ConformanceLevel.Document;

            var memoryStream = new MemoryStream();
            using (var writer = XmlWriter.Create(memoryStream, settings))
            {
                writer.WriteStartDocument(true);
                serializer.Serialize(writer, objectInstance, emptyNamepsaces);
                txt = Encoding.UTF8.GetString(memoryStream.ToArray());
            }
            return txt;
        }

Please help!

解决方案

XmlDocument xml = new XmlDocument();
XmlNode docNode = xml.CreateXmlDeclaration("1.0", "UTF-8\" standalone=\"yes", "");
xml.AppendChild(docNode);
Console.WriteLine("Header:" + xml.OuterXml);

Try it. (Please don't forget make as answer if that it the answer you want.)








这篇关于添加&lt;?xml version =&quot; 1.0&quot;编码= QUOT; UTF-8英寸独立= QUOT;是&QUOT;?&GT;到我的xml响应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆