我有以下功能:
public static XmlNode GetXMLNodeFromString(string strXML)
{
XmlDocument doc = new XmlDocument();
doc.LoadXml(strXML);
return doc.DocumentElement;
}
在从数据库调用返回的代码行中可以调用一百万次:
while (reader.Read())
{
myXMLList.Add(GetXMLNodeFromString((string)reader["GMLString"]));
}
有没有比继续为每一行实例化xmldocument更好的方法?或者这样做可以吗?
我不想这样:
XmlDocument doc = new XmlDocument();
while (reader.Read())
{
myXMLList.Add(doc, GetXMLNodeFromString((string)reader["GMLString"]));
}
因为在所有的现实中,都有一个函数树,我必须将它添加到其中。不仅仅是getxmlnodefromstring。
我可以这样做吗:
public static class Common
{
public static XmlDocument doc = new XmlDocument();
public static XmlNode GetXMLNodeFromString(string strXML)
{
doc.LoadXml(strXML);
return doc.DocumentElement;
}
}
我该怎么办?
最佳答案
如果您遇到性能问题,我建议您XmlReader,因为它允许您在xml传入时对其进行解析,而不是预先解析它并创建一个内存中的对象模型,无论如何您都必须重新进行解析。但是,它可能需要重新构造代码一点,因为它为您提供了顺序(而不是随机)访问。如果你不需要随机访问,这是一个不错的选择。
关于c# - 实例化XmlDocument是否昂贵?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7587958/