【问题标题】:C# creating XML output file without <?xml version="1.0" encoding="utf-8"?>C# 创建没有 <?xml version="1.0" encoding="utf-8"?> 的 XML 输出文件
【发布时间】:2013-12-18 11:54:30
【问题描述】:

我是 C# 开发的新手,所以这里可能是一个非常简单的问题。

我正在尝试获得这样开头的输出:

    <ns0:NamespaceEnvelope xmlns:ns0="http://url.to.NamespaceEnvelope/v1.0">

但我得到了这个:

    <?xml version="1.0" encoding="utf-8"?>
    <ns0>

这是我的来源:

        XmlWriterSettings settings = new XmlWriterSettings();
        settings.Indent = true;
        settings.IndentChars = "  ";
        settings.NewLineChars = "\r\n";
        settings.NewLineHandling = NewLineHandling.Replace;

        using (XmlWriter writer = XmlWriter.Create("employees.xml", settings))
        {
            writer.WriteStartDocument();
            writer.WriteStartElement("ns0"); 
            writer.WriteStartElement("Firstsection");

我怎样才能摆脱:

    <?xml version="1.0" encoding="utf-8"?>

我该如何改变:

     writer.WriteStartElement("ns0"); 

为了能够将其输出为:

    <ns0:NamespaceEnvelope xmlns:ns0="http://url.to.NamespaceEnvelope/v1.0">

这样:

    writer.WriteStartElement("ns0:NamespaceEnvelope xmlns:ns0="http://url.to.NamespaceEnvelope/v1.0"");

请求“)”可能是因为“围绕 http 部分。

非常感谢任何帮助。

【问题讨论】:

  • 您需要在最后一行中转义您的引号。对于每个文字",只需输入一个\"。如果您以前没有遇到过这种情况,请查找转义。话虽如此,我相信还有比这更好的方法来声明命名空间元素。
  • 请参阅msdn.microsoft.com/en-us/library/cfche0ka(v=vs.110).aspx,了解有关正确写出命名空间的一些内容。
  • 嗨,克里斯,感谢您的输入,尝试了转义 \ 解决了错误消息,但给出了:'ns0:NamespaceEnvelope xmlns:ns0="url.to.NamespaceEnvelope/v1.0"' 中的名称字符无效。 ':' 字符,十六进制值 0x3A,不能包含在名称中。然后将其更改为: writer.WriteStartElement("ns0"); writer.WriteAttributeString("xmlns", "ns0", null, "url.to.NamespaceEnvelope/v1.0"); 这给了我 url.to.NamespaceEnvelope/v1.0"> 所以现在我需要最后一步让
  • 大声笑,答案在外部页面上有点低:writer.WriteStartElement("ns0", "NamespaceEnvelope", "http://url.to.NamespaceEnvelope/v1.0");

标签: c# xml output


【解决方案1】:
XmlWriterSettings settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;

【讨论】:

    【解决方案2】:
     private string RemoveXmlDefinition(string xml)
     {
        XDocument xdoc = XDocument.Parse(xml);
        xdoc.Declaration = null;
    
        return xdoc.ToString();
     }
    

    【讨论】:

    • 总有替代方案;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    相关资源
    最近更新 更多