如何用xml节点的值定位节点

HowcanIdo 2004-08-11 04:47:50
<book> basic</book>
<book> pascal</book>
...
如何根据pascal定位节点?
...全文
221 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
aicode 2004-08-19
  • 打赏
  • 举报
回复
SelectNodes("//*[text()='pascal']")
aicode 2004-08-19
  • 打赏
  • 举报
回复
SelectNodes("//*[text()='pascal'])
wwwsq 2004-08-16
  • 打赏
  • 举报
回复
net_lover(孟子E章) 已经说过了,注意空格。

HowcanIdo 2004-08-16
  • 打赏
  • 举报
回复
不给我提前,?
wwwsq 2004-08-16
  • 打赏
  • 举报
回复
经测试,你的原文件可以如下定位:

代码:---------------------
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.Load("test.xml");
System.Xml.XmlNode node = doc.SelectSingleNode("descendant::book['pascal']");
string val = node.InnerXml;

test.xml:-------------------
<all>
<book>basic</book>
<book>pascal</book>
</all>


参见MSDN主题:XmlNode.SelectSingleNode 方法 (String) [C#]
wwwsq 2004-08-16
  • 打赏
  • 举报
回复
SelectSingleNode后面的字符串是 xpath,我也不太熟悉。不过上面的这个例子是我测试通过的。
wwwsq 2004-08-16
  • 打赏
  • 举报
回复
你的第一个帖子是有空格的。

代码---------------------
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.Load("test.xml");
System.Xml.XmlNode node = doc.SelectSingleNode("descendant::book[content='pascal']");
string val = node.InnerXml;

test.xml-------------------
<all>
<book>
<content>basic</content>
</book>
<book>
<content>pascal</content>
</book>
</all>
HowcanIdo 2004-08-16
  • 打赏
  • 举报
回复
XmlDocument xml = new XmlDocument();
xml.LoadXml("<?xml version=\"1.0\" encoding=\"GB2312\" ?><DATA><book>a</book><book>b</book></DATA>");
XmlNode rootnode = xml.DocumentElement;
label1.Text = rootnode.SelectSingleNode("/DATA/book='b'").InnerText ;

如果你认为可以,为什么不帮我试试。嫌分少,我可以加。再说我这里好像没空格
HowcanIdo 2004-08-13
  • 打赏
  • 举报
回复
我写错了?
各位给点意见
HowcanIdo 2004-08-12
  • 打赏
  • 举报
回复
我得测试例子
XmlDocument xml = new XmlDocument();
xml.LoadXml("<?xml version=\"1.0\" encoding=\"GB2312\" ?><DATA><book>a</book><book>b</book></DATA>");
XmlNode rootnode = xml.DocumentElement;
label1.Text = rootnode.SelectSingleNode("DATA/book='b'").InnerText ;

这样不行啊
phoenixsharp 2004-08-12
  • 打赏
  • 举报
回复
可以呀,但必须是两根斜线哦!如果pascal是根节点的话.如:

XmlNode root=xmlDoc.SelectSingleNode("//pascal");

其它:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(reader); //将文件加载到XmlDocument对象中
XmlNode root=xmlDoc.SelectSingleNode("//configuration//appSettings");
孟子E章 2004-08-12
  • 打赏
  • 举报
回复
注意空格
HowcanIdo 2004-08-12
  • 打赏
  • 举报
回复
楼上的,这种语法有吗?
我就是这样用不行,才上来问的,保错是应产生nodeset,也就是没有找到节点
BearRui 2004-08-11
  • 打赏
  • 举报
回复
xPath:

SelectSingleNode("/book='pascal'"

110,499

社区成员

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

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

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