C# 字符串中的XDocument有一个元素,需要描述

C# 字符串中的XDocument有一个元素,需要描述,c#,xml,linq,linq-to-xml,C#,Xml,Linq,Linq To Xml,我有一个正在解析到XDocument的xmlString: xmlString = "<TestXml>" + "<Data>" + "<leadData>" + "<Email>testEmail@yahoo.ca</Email>" + "<FirstName>John</FirstName>" + "<LastName>Doe&l

我有一个正在解析到XDocument的xmlString:

xmlString = 
"<TestXml>" +
   "<Data>" +
      "<leadData>" +
        "<Email>testEmail@yahoo.ca</Email>" +
        "<FirstName>John</FirstName>" +
        "<LastName>Doe</LastName>" +
        "<Phone>555-555-5555</Phone>" +
        "<AddressLine1>123 Fake St</AddressLine1>" +
        "<AddressLine2></AddressLine2>" +
        "<City>Metropolis</City>" +
        "<State>DC</State>" +
        "<Zip>20016</Zip>" +
     "</leadData>" +
  "</Data>" +
"</TestXml>"
xmlString=
"" +
"" +
"" +
"testEmail@yahoo.ca" +
“约翰”+
“能源部”+
"555-555-5555" +
“123假街”+
"" +
“大都会”+
“DC”+
"20016" +
"" +
"" +
""
我将字符串解析为XDocument,然后尝试遍历节点:

XDocument xDoc = XDocument.Parse(xmlString);
Dictionary<string, string> xDict = new Dictionary<string, string>();

//Convert xDocument to Dictionary
foreach (var child in xDoc.Root.Elements())
{
      //xDict.Add();
}
XDocument xDoc=XDocument.Parse(xmlString);
Dictionary xDict=新字典();
//将xDocument转换为字典
foreach(xDoc.Root.Elements()中的var子级)
{
//xDict.Add();
}

这将只迭代一次,并且一次迭代似乎包含所有数据。我意识到我做错了什么,但在谷歌搜索之后,我不知道是什么。

尝试
xDoc.Root.subjections()
而不是在foreach循环中
xDoc.Root.Elements()

你的根只有一个子数据,因此它只迭代一次

var xDict = XDocument.Parse(xmlString)
            .Descendants("leadData")
            .Elements()
            .ToDictionary(e => e.Name.LocalName, e => (string)e);

这似乎返回了一个空字典。@Blankdud唯一的camelCase标记是
leadData
。我认为您在查询中使用了
LeadData
。Xml区分大小写。(或者您使用的xml不同)。我使用的xml有点不同,是的,因为它包含敏感数据。然而,我使用的是
leadData
。我想就是这样!非常感谢。@Blankdud没问题,很高兴我能帮上忙!