我有一个xmlString,我正在解析为XDocument:
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>"
我将字符串解析为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();
}
这只会迭代一次,而且一次迭代似乎包含了所有数据。我意识到我做错了什么,但谷歌搜索后我不知道是什么。
答案 0 :(得分:1)
在你的foreach循环中尝试xDoc.Root.Descendants()
而不是xDoc.Root.Elements()
。
答案 1 :(得分:0)
您的 root 只有一个子数据,因此它只迭代一次
var xDict = XDocument.Parse(xmlString)
.Descendants("leadData")
.Elements()
.ToDictionary(e => e.Name.LocalName, e => (string)e);