C#XmlDocument.Save()添加了古怪的doctype

时间:2017-01-18 01:52:44

标签: c# xml html5

我正在做一些HTML处理(作为XML)。一切都很好,除了一个小小的烦恼:E/RecyclerView: No adapter attached; skipping layout E/Surface: getSlotFromBufferLocked: unknown buffer: 0xee934ca0 正在将XmlDocument.Save()更改为<!DOCTYPE html>,这被HTML5验证器视为古怪。我找不到阻止<!DOCTYPE html []>这样做的方法。请有人帮忙。

这是说明问题的(最小)C#代码。

XmlDocument.Save()

示例输入HTML:

using System.Xml;

class Program
{
  static void Main(string[] args)
  {
    if (args.Length != 1) 
      return;

    string infile = args[0];
    XmlDocument doc = new XmlDocument();
    doc.Load(infile);
    XmlNode root = doc.DocumentElement;
    XmlWriterSettings xws = new XmlWriterSettings
    {
      OmitXmlDeclaration = true,
      Indent = true,
        IndentChars = "   ",
    };
    // Some custom processing - TODO
    using (XmlWriter xw = XmlWriter.Create("output.html", xws))
    {
      doc.Save(xw);
    }
  } // Main
} // class
除了DOCTYPE末尾的那些额外方括号外,

&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset="utf-8" /&gt; &lt;title&gt;Tester&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;Tester&lt;/h1&gt; &lt;/body&gt; &lt;/html&gt; 与输入相同。

0 个答案:

没有答案