实例说明会更清楚些,假设有如下XML文件:
File: message_hutaow.xml
<?xml version="1.0" encoding="UTF-8"?> <hutaow:Message version="1.0" xmlns:hutaow="http://wangtao.cublog.cn"> <hutaow:Head> <hutaow:Date>20080502</hutaow:Date> <hutaow:Source> <hutaow:Address>192.168.0.1</hutaow:Address> <hutaow:name>HUTAOW_HOST</hutaow:name> </hutaow:Source> <hutaow:Target> <hutaow:Address>192.168.0.19</hutaow:Address> </hutaow:Target> </hutaow:Head> </hutaow:Message>
|
现在要读取消息源(Source)及目的(Target)的IP地址(Address)。
也就是需要获取"/Message/Head/Source/Address"及"/Message/Head/Target/Address"的数据,需要用到XPath的寻径方式,具体代码如下:
//需要引用System.Xml库
using System.Xml; /* * 省略中间无关代码 */ //加载XML文件
XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("message_hutaow.xml"); //XML文件中使用了命名空间
XmlNamespaceManager xmlNamespace = new XmlNamespaceManager(xmlDoc.NameTable); xmlNamespace.AddNamespace("hutaow", "http://wangtao.cublog.cn"); //使用XPath方式寻找源IP地址节点并输出
xmlNode = xmlDoc.SelectSingleNode("/hutaow:Message/hutaow:Head/hutaow:Source/hutaow:Address", xmlNamespace); Console.WriteLine("Source Address: {0}",xmlNode.InnerText); //使用XPath方式寻找目的IP地址节点并输出
xmlNode = xmlDoc.SelectSingleNode("/hutaow:Message/hutaow:Head/hutaow:Target/hutaow:Address", xmlNamespace); Console.WriteLine("Target Address: {0}",xmlNode.InnerText); /* * 控制台输出: * Source Address: 192.168.0.1 * Target Address: 192.168.0.19 */
|
阅读(3865) | 评论(0) | 转发(0) |