Chinaunix首页 | 论坛 | 博客
  • 博客访问: 245077
  • 博文数量: 27
  • 博客积分: 4010
  • 博客等级: 上校
  • 技术积分: 410
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-10 13:39
文章分类

全部博文(27)

文章存档

2010年(17)

2009年(2)

2008年(8)

我的朋友
最近访客

分类:

2010-04-27 12:43:40

实例说明会更清楚些,假设有如下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) |
给主人留下些什么吧!~~