用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 ;
[解决办法]
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);
[解决办法]
//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);