1.如何利用xmldocument加载xml文件。 在.net中使用DOM .net中的文档对象模型(document object model)支持W3C DOM LEVEL 1和Core DOM LEVEL2规范,DOM是通过XMLNode类来实现的。XmlNode是一个抽象类,他表示文档中的一个节点。
使用XmlDocument对象。 XmlDocument及其派生类XmlDataDocument是用于在.net中表示DOM的类,与XmlReader和XmlWriter不同,XmlDocument具有读写功能,并可以随机访问DOM树。 命名空间:System.Xmlpublic class XmlDocument : XmlNode:表示 XML 文档。 备注:此类实现 W3C 文档对象模型 (DOM) 级别 1 核心 (Level 1 Core) 和核心 DOM 级别 2 (Core DOM Level 2)。DOM 是 XML 文档的内存中(缓存)树状表示形式,允许对该文档的导航和编辑。 构建器: public XmlDocument(): 初始化XmlDocument类的新实例。 公共方法: public virtual void Load ( Stream inStream ): 从指定的流加载 XML 文档,参数inStream 包含要加载的 XML 文档的流。 public virtual void Load ( string filename ): 从指定的 URL 加载 XML 文档,参数filename 文件的 URL,该文件包含要加载的 XML 文档。
xmldocument对xml文件中每个标签(节点),属性(属性attribute),文本(Text) using System; using System.IO; using System.Xml; public class Sample { public static void Main() { XmlDocument doc = new XmlDocument(); doc.Load(@"c:/aa.xml"); XmlNode node=doc.DocumentElement;//xml的根标签 Console.WriteLine(node.Name);//返回标签的名字 Console.WriteLine(node.InnerText);//返回标签下所有字标签包含的文本。 Console.WriteLine(node.InnerXml);//返回所有字标签以及包含的文本。 } }
2、读取xml数据的方法。 范例:读取所有标签下的<name>标签中文本。 XmlNode :表示一个标签节点 XmlNodeList :表示一个节点的集合 public virtual XmlNodeList GetElementsByTagName ( string name ): 返回一个 XmlNodeList,它包含与指定 Name 匹配的所有子代元素的列表,参数name 要匹配的限定名。它针对匹配节点的 Name 属性进行匹配。特殊值“*”匹配所有标记,返回数据为:XmlNodeList,包含所有匹配节点的列表。 public abstract class XmlNodeList : IEnumerable:表示排序的节点集合。 备注XmlNodeList 集合为“活动”的;也就是说,对其源节点对象的子级所做的更改会立即反映在由 XmlNodeList 属性和方法返回的节点中。XmlNodeList 支持迭代和索引访问,此集合对象中包含的每个元素是XmlNode的派生类对象。 以下属性和方法返回 XmlNodeList: XmlNode.ChildNodes - 返回包含节点所有子级的 XmlNodeList。 XmlNode.SelectNodes - 返回包含匹配 XPath 查询的节点集合的 XmlNodeList。 GetElementsByTagName - 返回包含与指定名称匹配的所有子代元素的列表的 XmlNodeList。该方法在 XmlDocument 和 XmlElement 类中都可以使用。 using System; using System.IO; using System.Xml; public class Sample { public static void Main() { XmlDocument doc = new XmlDocument(); doc.Load(@"c:/aa.xml"); XmlNodeList list= doc.GetElementsByTagName("name"); foreach (XmlNode node in list) { Console.WriteLine(node.Name + ":" + node.InnerText); } list = doc.GetElementsByTagName("price"); foreach (XmlNode node in list) { Console.WriteLine(node.Name + ":" + node.InnerText); } } }
public XmlNodeList SelectNodes ( string xpath ): 选择匹配 XPath 表达式的节点列表,参数xpath为XPath 表达式,返回值一个 XmlNodeList,包含匹配 XPath 查询的节点集合。不应该要求将 XmlNodeList “实时”连接到 XML 文档。也就是说,XML 文档中的更改不会出现在 XmlNodeList 中,反之亦然。 范例: using System; using System.IO; using System.Xml; public class Sample { public static void Main() { XmlDocument doc = new XmlDocument(); doc.Load(@"c:/aa.xml"); //XmlNodeList list= doc.GetElementsByTagName("name"); XmlNodeList list = doc.SelectNodes("books/book/name"); foreach (XmlNode node in list) { Console.WriteLine(node.Name + ":" + node.InnerText); } } } aa.xml <?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/css" href="D:/Project/ConsoleApplication1/ConsoleApplication1/bb.css"?> <books> <book id="a1"> <name>jsp</name> <price>6788</price> <num>michael</num> </book> <book id="a2"> <name>asp.net</name> <price>444</price> <num>michael</num> </book> </books>