元素(名称)返回null

时间:2017-03-07 13:48:06

标签: c# xml

我有这个XML:

<?xml version="1.0" encoding="utf-8"?>
<envelope xmlns="myNamespace">
  <response code="123" />
</envelope>

我希望像这样选择<response>元素:

XDocument doc = XDocument.Parse(myXmlString);
XElement response = doc.Root.Element("response");

但它会返回null。我知道元素存在,因为doc.Root.FirstNode是我需要的元素。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:6)

您需要包含命名空间以获取元素:

XDocument doc = XDocument.Parse(myXmlString);
XNamespace ns = "myNamespace";
XElement response = doc.Root.Element(ns + "response");

或者,您可以使用LocalName来使用命名空间:

XDocument doc = XDocument.Parse(xml);
XElement response = doc.Descendants().First(x => x.Name.LocalName == "response");