如何从xmlReader的当前节点创建xmlElement?

Dan*_*nor 11 .net c# xml

如果我有一个xmlreader实例,我如何使用它来读取它的当前节点并以xmlElement实例结束?

Mar*_*ell 8

未经测试,但通过以下方式XmlDocument:

    XmlDocument doc = new XmlDocument();
    doc.Load(reader);
    XmlElement el = doc.DocumentElement;
Run Code Online (Sandbox Code Playgroud)

或者(从cmoment),像:

    doc.LoadXml(reader.ReadOuterXml());
Run Code Online (Sandbox Code Playgroud)

但实际上我并不是那种粉丝......它没有任何理由强制进行额外的xml-parse步骤(更昂贵的CPU操作之一).如果原来是毛躁的,那么也许会考虑一个子读者:

    using (XmlReader subReader = reader.ReadSubtree())
    {
        XmlDocument doc = new XmlDocument();
        doc.Load(subReader);
        XmlElement el = doc.DocumentElement;
    }
Run Code Online (Sandbox Code Playgroud)

  • 这如何回答这个问题?这会将整个 xml 读入 XmlDocument,并且仅返回根元素。 (2认同)
  • @Sunny; 根元素包含所有其他元素作为后代 (2认同)