0

我遇到了一个不寻常的问题。我有这个 XML:

<T durationMs="400">
  <foo durationMs="407">
    <foo-child durationMs="307" />
  </foo>
  <bar durationMs="208">
    <bar-child durationMs="108" />
  </bar>
</T>

我正在使用 XPathExtentions 从这个 XML 中获取一个 XElement:

var xe = XElement.Parse(s);
var foo = xe.XPathSelectElement("/T/foo")

它什么也不返回。但是,如果我使用:

var foo = xe.XPathSelectElement("./foo")

它得到一个元素。那么在这种情况下,点和斜线有什么区别?

4

2 回答 2

4

/root节点中选择。

所以/T/foo它试图匹配T->T->foo哪个肯定不匹配

.描述当前节点,在这种情况下它将是根节点

/foo会工作

于 2013-04-18T18:44:53.880 回答
1

.选择当前节点。

/从根节点中选择。

//从当前节点中选择文档中与选择匹配的节点,无论它们在哪里。

XPath 语法让您简要了解如何完成选择


在您的情况下./foo,表示从根节点选择,即T

于 2013-04-18T18:41:08.943 回答