什么是检查XmlDocument中XmlDeclaration节点的更有效的方法?
检查它是否有一个:
bool hasDec = doc.FirstChild.NodeType == XmlNodeType.XmlDeclaration;
如果它有一个,则可以通过以下方式获取:
XmlDeclaration dec = doc.FirstChild as XmlDeclaration;
请记住,在XML声明之前不允许有任何内容(除了BOM,但这不被视为内容,而是流中的编码工件,因此不会有相应的节点)。
你希望获得什么样的“效率”?表达效率还是执行时间效率?以下是一个 LINQ 查询,可以快速找到声明:
XmlDeclaration declaration = doc.ChildNodes
.OfType<XmlDeclaration>()
.FirstOrDefault();
我强烈怀疑这将足够高效。有可能你可以仅测试第一个子节点是否为XmlDeclaration
… 我认为在之前不会出现其他任何情况。
如果有可能使用LINQ to XML,那么就更容易了——你只需要使用XDocument.Declaration
属性。