0

我有一个 Xelement 被传递给一个函数:

ByVal request As XElement

Xelement 对象内部是一个元素:

<nc:ID>1234567</nc:ID>

我应该能够通过以下方式获得此值:

request.Element("ID").value

...但它不返回任何东西。我怀疑这是因为命名空间前缀。我在这篇文章中看到了一个解决方案,该解决方案在转换为 VB.net ( request.Elements().Where(Function(e) e.Name.LocalName = "ID").Value) 后有效,但我不明白为什么或为什么 .element("ID").value 不返回值。谁能给我一些见解?

4

1 回答 1

0

我今天遇到了同样的问题。显然“nc”不是命名空间,但实际上是命名空间前缀;您需要获取名称空间本身。事实证明它必须这样做:

XNamespace ns = request.GetNamespaceOfPrefix("nc");
XElement ID = request.Element(ns + "ID");
于 2015-02-14T18:09:30.943 回答