首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

用C#怎么获得这样一个带命名空间的xml文档的指定节点

2011-12-25 
用C#怎样获得这样一个带命名空间的xml文档的指定节点?xml文档:?xml version1.0 encodinggb2312 ?-

用C#怎样获得这样一个带命名空间的xml文档的指定节点?
xml文档:
<?xml version="1.0" encoding="gb2312" ?>
- <ct:UpdateDetails Date="20050601 08:00" xmlns:ct="http://www.aaa.com/">
  - <!-- 下面是具体内容
  -->
  - <details title="员工">
  - <Content>
  <name>张三</name>
  <sex>男</sex>
  <home>北京市海淀区中关村</home> 
  </Content>
  </details>
</ct:UpdateDetails>

我想获得sex节点的值“男”,怎样实现呢?

[解决办法]
XmlDocument XmlDoc = new XmlDocument(); 建立一个XMLDocument对象
XmlDoc.Load(inputXMLFile); 读取MXl文件
XmlNode node = XmlDoc.SelectSingleNode("/details");截取details节点
XmlNode n=node.SelectSingleNode("sex"); //SelectSingleNode()截取节点
Object e =n.InnerXml ;

[解决办法]

C# code
            XmlDocument xmlDoc = new XmlDocument();            xmlDoc.Load("XMLFile1.xml");            XmlNamespaceManager xmlNS = new XmlNamespaceManager(xmlDoc.NameTable);            string prefix = "ct";            string ns = "http://www.aaa.com/";            xmlNS.AddNamespace(prefix,ns);            string xpath = prefix + ":UpdateDetails/details/Content/sex";            XmlNode node = xmlDoc.SelectSingleNode(xpath, xmlNS);
[解决办法]
C# code
//xml查询带命名空间XmlDocument doc = new XmlDocument();//doc.Load("C:\\nso.xml");doc.Load("C:\\nso.xml");NameTable xmt = new NameTable();//xmt.Add("ns0");XmlNamespaceManager xnm = new XmlNamespaceManager(xmt);xnm.AddNamespace("ns0", "http://blog.csdn.net/zhzuo");XmlNode node = doc.SelectSingleNode("//ns0:NewDataSet/ns0:Table1", xnm);            //如果是默认命名空间,可以添加别名进行查询。 XmlDocument doc = new XmlDocument();//doc.Load("C:\\nso.xml");doc.Load("C:\\m.xml");NameTable xmt = new NameTable();           XmlNamespaceManager xnm = new XmlNamespaceManager(xmt);//默认命名空间添加nn别名。xnm.AddNamespace("nn", "http://blog.csdn.net/zhzuo");XmlNode node = doc.SelectSingleNode("//ns0:NewDataSet/ns0:Table1", xnm);
[解决办法]
//need a alias even if it is the default namespace and use it to access the node

xnm.AddNamespace("m", "http://hi.csdn.net/mohammed");

XmlNode node = doc.SelectSingleNode("//m:NewDataSet/m:Table1", xnm);

热点排行