Jon*_*nna 10
检查它有一个:
bool hasDec = doc.FirstChild.NodeType == XmlNodeType.XmlDeclaration;
Run Code Online (Sandbox Code Playgroud)
要获得它,如果它有一个:
XmlDeclaration dec = doc.FirstChild as XmlDeclaration;
Run Code Online (Sandbox Code Playgroud)
请记住,在XML声明之前没有允许的内容(禁止BOM,这不是内容,而是流中的编码假象,因此不会有相应的节点).
你追求什么样的"效率"?表达效率或执行时的效率?这是一个LINQ查询,可以很快找到声明:
XmlDeclaration declaration = doc.ChildNodes
.OfType<XmlDeclaration>()
.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
我强烈怀疑这将足够有效.您可能只是测试第一个子节点是否是XmlDeclaration......我认为其他任何事物都不会出现在它之前.
如果有可能使用LINQ to XML,那么它变得更加容易 - 您只需使用该XDocument.Declaration属性.
| 归档时间: |
|
| 查看次数: |
8429 次 |
| 最近记录: |