string baseuri = doc.SelectSingleNode("Article").FirstChild.BaseURI;
Console.WriteLine(baseuri); //输出 file:///C:\Users\Administrator\Desktop\ConsoleApplication1\ConsoleApplication1\Test.xml
XmlNodeList listNode = doc.SelectSingleNode("Article").ChildNodes; //获取Article节点下的所有节点列表
for (int i = 0; i < listNode.Count;i++ ) //XmlNodeList不支持foreach遍历,只能用for
{
Console.Write(listNode[i].Name + " : " + listNode[i].InnerText); //输出 author:张三 length:12000 price:30 Name获取的是限定名,也就是标记名称
}
XmlElement xe = doc.DocumentElement; //获取根节点
Console.WriteLine(xe.Name); //输出 Article
//XmlDocumentType xdt = doc.DocumentType; //获取包含 DOCTYPE 声明的节点。应该是由DTD限定的节点。
//Console.Write(xdt.Name); //此处报 未将对象引用设置到对象的实例,因为找不到有DOCTYPE声明的元素
Console.WriteLine(doc.HasChildNodes); //输出 True 当前Document是否包含子节点。
//XmlImplementation xi = doc.Implementation; //不懂怎么用
//xi.ToString();
Console.WriteLine(doc.InnerText); //获取当前文档的内容 输出 张三 12000 30
Console.WriteLine(doc.InnerXml); //输出 整个Xml文件的字符串内容
Console.WriteLine(doc.IsReadOnly); //获取当前文档是否是只读的。输出 False
XmlNode node = doc.LastChild;
Console.WriteLine(node.InnerText); //输出 张三 12000 30 因为最后一个节点是Article节点,输出Article节点的所有内容
Console.WriteLine(doc.LocalName); //输出 #document
Console.WriteLine(doc.SelectSingleNode("Article").Name); //输出Article
Console.WriteLine(doc.SelectSingleNode("Article").FirstChild.NextSibling.Name); //length author的下一个兄弟节点 是length
XmlNodeType xnt = doc.SelectSingleNode("Article").NodeType;
Console.WriteLine(xnt); //输出Element,表明该节点是元素节点
string str = doc.SelectSingleNode("Article").OuterXml; //此节点及其所有自己点标记,输出Article节点的所有内容 <Article>省略...</Article>
Console.WriteLine(str);
XmlDocument x = new XmlDocument();
x.LoadXml(str);