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

wnnnnnn6 2008-02-29 09:11:16
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节点的值“男”,怎样实现呢?
...全文
948 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mahui.me 2008-10-24
  • 打赏
  • 举报
回复
//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);
olive_cai 2008-10-07
  • 打赏
  • 举报
回复
xpath中,每个节点都加别名如:"//ns0:NewDataSet/ns0:Table1" 觉得比较麻烦,有什么办法不用加?
marvelstack 2008-03-25
  • 打赏
  • 举报
回复

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

MyLf 2008-03-25
  • 打赏
  • 举报
回复

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

panw520 2008-03-25
  • 打赏
  • 举报
回复
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 ;
powerIsAll 2008-03-25
  • 打赏
  • 举报
回复
用XmlTextReader的实例去读,然后判断节点名
wnnnnnn6 2008-02-29
  • 打赏
  • 举报
回复
难道没人会吗?

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧