【问题标题】:what does this xpath means "//Form/*[. = 'on']"这个xpath是什么意思“//Form/*[.='on']”
【发布时间】:2011-06-06 14:07:27
【问题描述】:

我是xml相关的新手
我无法理解:

SelectNodes(@"//Form/*[. = 'on']");

注意:SelectNodesXmlNode的函数。(与XmlDocument相关)

请告诉我这段代码 sn-p 是什么意思?

【问题讨论】:

  • @Cold 夏威夷代码行是 XmlNodeList selectedFields = formXmlDoc.SelectNodes(@"//Form/*[. = 'on']"); //请注意 formXmlDoc 的类型是 XmlDocument.Xml 是事先验证的。

标签: .net xml xpath xmlnode selectnodes


【解决方案1】:

. 表示当前元素节点,不管它是什么。谓词检查元素的文本节点,看它是否是字符串'on'

这样 XPath 查询会选择任何属于 Form 节点的子节点并且值为 on 的节点。

【讨论】:

  • 一些额外的文档供将来参考,MSDNW3Schools
  • @BoltCock,Cold Hawaiian : 如果我的输入是 "
    1
    " 那么 SelectNodes(@"//Form /*[.='on']").Count ? 0 还是 1?并告诉我在什么情况下(什么输入)应该提供(参考给定的输入)以获得 SelectNodes(@"//Form/*[. = 'on']").Count NON-Zero or 1
  • @Pratik:它将为 0,因为没有一个元素在其值中包含单词 on。如果要选择内部有<Selected>1</Selected> 的元素,请使用//Form/*[Selected='1']
  • @BoltClock:谢谢。但是在不改变 SelectNodes(@"//Form/*[. = 'on']"); 的情况下,我应该输入什么来获得 1
  • @Pratik:您选择了表单中的哪个项目? <txtInput /> 有关系吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-11
  • 2018-10-29
  • 1970-01-01
  • 2013-04-08
  • 2011-02-17
  • 2017-05-25
  • 2010-10-03
相关资源
最近更新 更多