C# 迭代xmlement';s子节点(选择SingleNode返回NULL)

C# 迭代xmlement';s子节点(选择SingleNode返回NULL),c#,xml,xmldocument,C#,Xml,Xmldocument,我试图循环遍历XML元素,并将值分配给对象的成员变量。下面是我试过的。但是SelectSingleNode()正在返回NULL。Any是一个xmlement数组(由服务返回)。我尝试过使用XmlNamespaceManager,但是data.Any不是XmlDocument,因此它不包含名称表。我做错了什么 代码: XML: 9B36D7A7EDD26A22 1235/AN612 太太 名列前茅 姓氏 FLDA/12 SL3747A 3. 问题似乎在于xmlns。参见示例。您是否可以输出/检查数

我试图循环遍历XML元素,并将值分配给对象的成员变量。下面是我试过的。但是
SelectSingleNode()
正在返回
NULL
。Any是一个
xmlement
数组(由服务返回)。我尝试过使用
XmlNamespaceManager
,但是data.Any不是
XmlDocument
,因此它不包含
名称表
。我做错了什么

代码:

XML:

9B36D7A7EDD26A22
1235/AN612
太太
名列前茅
姓氏
FLDA/12
SL3747A
3.

问题似乎在于xmlns。参见示例。您是否可以输出/检查
数据中的实际元素。是否有
?如果
foreach
循环中的
item
数据中的一个项。Any
,并且如果
item
是您在XML部分中显示的任何元素,那么
item
在某个点将是
CorrelationID
元素本身-因此要计算的XPath表达式的上下文将是该元素,因此XPath表达式
CorrelationID
将找不到任何内容,因为该名称没有其他子元素。(这是对@Henkholtman所写内容的补充。)@Henkholtman我已经试过了。请查看我的问题:)@O.R.Mapper data.Any是一个XmlElement数组,其中包含我在问题中发布的XML。@Azzi:Does
item.OwnerDocument
return
null
foreach (XmlElement item in data.Any)
{
    result.CorrelationID = item.SelectSingleNode("CorrelationID").InnerText;
}
<CorrelationID xmlns="http://www.host.com/folder/anotherFolder">9B36D7A7EDD26A22</CorrelationID>
<EmployerRef xmlns="http://www.host.com/folder/anotherFolder">1235/AN612</EmployerRef>
<Name xmlns="http://www.host.com/folder/anotherFolder">
<Ttl>MS</Ttl>
<Fore>NameFirst</Fore>
<Sur>NameLast</Sur>
</Name>
<PayId xmlns="http://www.host.com/folder/anotherFolder">FLDA/12</PayId>
<NINOToUse xmlns="http://www.host.com/folder/anotherFolder">SL3747A</NINOToUse>
<MessageID xmlns="http://www.host.com/folder/anotherFolder">3</MessageID>
foreach (XmlElement item in data.Any)
{
    XmlDocument doc = item.OwnerDocument;
    XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
    nsmgr.AddNamespace("af", "http://www.host.com/folder/anotherFolder");
    result.CorrelationID = item.SelectSingleNode("af::CorrelationID", nsmgr).InnerText;
}