为使用xdocument生成xml创建有效的代码

本文关键字:创建 有效 代码 xml 生成 xdocument | 更新日期: 2023-09-27 18:12:30

我正在使用Xdocument生成一个XML文件,但是,我生成的代码效率不高(代码中有太多新对象)。我想知道你是否可以告诉我我的代码的哪些部分需要修改。

 XDocument doc = new XDocument();
        foreach (HtmlElement el in webBrowser1.Document.GetElementsByTagName("TEXTAREA"))
        {
            doc.Add(new XElement("Item", new XElement("GUID", el.Id), new XElement("Type",
                (el.GetAttribute("type").ToUpper())), new XElement("Title", el.GetAttribute("title")), new XElement("Name", el.Name),
                new XElement("Value", el.GetAttribute("value")), new XElement("MaxLength", el.GetAttribute("maxlength"))));                
            xmlcontents += Convert.ToString(doc.Document) + "'r'n";
        }
如您所见,我使用了许多新的xelement。有什么方法可以摆脱xelement吗?

为使用xdocument生成xml创建有效的代码

如果您使用XmlWriter而不是StringWriter,您可以使用如下示例

string xml;
using (StringWriter sw = new StringWriter())
{
  using (XmlWriter xw = XmlWriter.Create(sw, new XmlWriterSettings() { Indent = true }))
  {
    xw.WriteStartDocument();
    xw.WriteStartElement("Root");
    foreach (HtmlElement el in webBrowser1.Document.GetElementsByTagName("TEXTAREA"))
    {
      xw.WriteStartElement("Item");
      xw.WriteElementString("GUID", el.Id);
      xw.WriteElementString("Type", el.GetAttribute("type").ToUpper());
      // write further elements the same way
      xw.WriteEndElement();
    }
    xw.WriteEndElement();
    xw.WriteEndDocument();
  }
  xml = sw.ToString();
}