8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

如何让XMLDocument不在自封闭标签上留空格?

Football Dudes 2月前

48 0

我有一个格式良好且没有任何空格的 XML。它一定是这样的。当我将其加载到 XMLDocument 进行签名时,自闭合标签会多出一个空格,并且变成:...

我有一个格式良好且没有任何空格的 XML。它必须是那样的。

当我将其加载到 XMLDocument 进行签名时,自闭合标签会出现一个额外的空格,并且

    <cEAN/>

变成:

     <cEAN />

一旦这份文件必须签署,就不可能删除空白。

属性 PreserveWhiteSpace 对结果没有任何影响。

我怎样才能改变这种行为?

帖子版权声明 1、本帖标题:如何让XMLDocument不在自封闭标签上留空格?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Football Dudes在本站《linq》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 我的解决方法如下:

    1. 创建流:
    
        var stream = new MemoryStream();
    
    
    1. 创建 XML 并将其保存到流中:
    
               var writerSettings = new XmlWriterSettings
                {
                    Indent = true,
                    IndentChars = "    ",
                    NewLineChars = Environment.NewLine,
                    NewLineHandling = NewLineHandling.Replace,
                    OmitXmlDeclaration = true,
                };
    
                using (var xrmService = new XrmServiceContext(context.Service))
                using (XmlWriter writer = XmlWriter.Create(stream, writerSettings))
                {
                    writer.WriteStartElement("xyz");
                    writer.WriteElementString("abc", "123");
                    ...
                    writer.WriteEndElement();
                    writer.Flush();
                }
    
    
    1. 将流转换为字符串以便能够重新格式化
    
        string stringXml = Encoding.UTF8.GetString(stream.ToArray()).Replace(" />", "/>");
    
    
    1. p1

       byte[] byteArray = Encoding.UTF8.GetBytes(stringXml);       MemoryStream formattedStream = new MemoryStream(byteArray);
    2. p2

    
        using (FileStream file = new FileStream(@"filepath\file.xml", 
                   FileMode.Create, FileAccess.Write))
                    {
                        formattedStream.CopyTo(file);
                        file.Flush();
                    }
                    formattedStream.Flush();
    
    

    帮助我实现这一目标的资源:

    • 将 XML 内容保存到变量
    • 将字符串转换为 System.IO.Stream
    • 将 MemoryStream 保存到文件或从文件加载
返回
作者最近主题: