元素(名称)返回 null [重复]
Posted
技术标签:
【中文标题】元素(名称)返回 null [重复]【英文标题】:Element(name) returns null [duplicate] 【发布时间】:2017-03-07 13:48:06 【问题描述】:我有这个 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
是我需要的元素。
我在这里错过了什么?
【问题讨论】:
你试过rheDescendants()
方法吗?
顺便说一句 - XML 无效,您最后缺少?
,即<?xml version="1.0" encoding="utf-8"?>
【参考方案1】:
你需要包含命名空间来获取元素:
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");
【讨论】:
你也可以使用XNamespace ns = doc.Root.GetDefaultNamespace()
@SergeyBerezovskiy 我不知道,谢谢!以上是关于元素(名称)返回 null [重复]的主要内容,如果未能解决你的问题,请参考以下文章