我知道如果您知道节点名称,可以使用C#获取任何XML节点,但我想获取根节点以便我可以找到该名称.这可能吗?
更新:我正在使用XMLTextReader读取文件的URL,然后将其加载到XMLDocument对象中.基本上我是想避免使用LINQ to XML,但如果还有另一种更好的方法,那么我总是一个好学生.
Cha*_*esB 80
根节点是DocumentElement
属性XmlDocument
XmlElement root = xmlDoc.DocumentElement
Run Code Online (Sandbox Code Playgroud)
如果您只有节点,则可以获取根节点
XmlElement root = xmlNode.OwnerDocument.DocumentElement
Run Code Online (Sandbox Code Playgroud)
Min*_*Shi 21
我在这里得到了同样的问题.如果文档很大,使用XmlDocument不是一个好主意.事实是第一个元素是根元素,基于该元素可以使用XmlReader来获取根元素.使用XmlReader将比使用XmlDocument更有效,因为它不需要将整个文档加载到内存中.
using (XmlReader reader = XmlReader.Create(<your_xml_file>)) {
while (reader.Read()) {
// first element is the root element
if (reader.NodeType == XmlNodeType.Element) {
System.Console.WriteLine(reader.Name);
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
Dan*_*ar3 15
同意犹太人,XmlReader是更好的方法,特别是如果使用更大的XML文档或在循环中处理多个 - 如果您只需要文档根,则无需解析整个文档.
这是一个简化版本,使用XmlReader和MoveToContent().
http://msdn.microsoft.com/en-us/library/system.xml.xmlreader.movetocontent.aspx
using (XmlReader xmlReader = XmlReader.Create(p_fileName))
{
if (xmlReader.MoveToContent() == XmlNodeType.Element)
rootNodeName = xmlReader.Name;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
104827 次 |
最近记录: |