读书人

用C#怎么获得这样一个带命名空间的xml

发布时间: 2011-12-25 23:21:20 作者: rapoo

用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);

读书人网 >C#

热点推荐