C# 字符串中的XDocument有一个元素,需要描述
我有一个正在解析到XDocument的xmlString: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
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没问题,很高兴我能帮上忙!