2014-12-19 66 views
0

我在阅读以下内容到Web服务的键值字典中。如何从服务器读取字典键值的xml请求

Dictionary<string, string> att = new Dictionary<string, string>(); 


<Req> 
<ID>myProg</ID> 
<FID>myID</FID> 

<att attName="fName"><Value></Value></att> 
<att attName="lName"><Value>Doe</Value></att> 
<att attName="Add"><Value>222 Fork Drive</Value></att> 
</Req> 

我知道我可以在这里居然有一个attName和价值的部分做的foreach,我该怎么办,对于前两个部分?

有人说什么我迄今所做的:

void Main() 
{ 
    XmlDocument doc = new XmlDocument(); 
    doc.Load("myxmldoc.xml"); 
    var re = doc;    
    foreach (System.Xml.XmlElement r in re) 
    { 
       Console.WriteLine(r); 
    } 
} 

感谢

+0

你尝试过什么?这不是一个请为我的网站代码。这完全取决于你想如何将数据存储在字典中。 – deathismyfriend 2014-12-19 00:16:30

+0

以及我不知道你的意思是“请为我的网站编码”..但这是我所尝试的,我创建了一个XML文档,并在一个foreach循环System.Xml.XmlElement中读取它。 – NoviceDeveloper 2014-12-19 00:29:16

+0

如果你已经阅读过,那么你应该发布代码。并且,请为我的网站代码这意味着您要求我们为您编码。这是一个帮助网站帮助修复损坏的代码。 – deathismyfriend 2014-12-19 00:30:39

回答

1

您可以使用此代码

var root = XElement.Parse(xml); 
var att = root.Nodes().Where(n => n.NodeType == XmlNodeType.Element) 
    .Select(node => 
    { 
     var element = (XElement)node; 
     return element.Name.LocalName.Equals("att") 
      ? Tuple.Create(element.Attribute("attName").Value, ((XElement)element.FirstNode).Value) 
      : Tuple.Create(element.Name.LocalName, element.Value); 
    }) 
    .ToDictionary(tuple => tuple.Item1, tuple => tuple.Item2); 
+0

这是答案的一部分......我需要将节点添加到字典中。 – NoviceDeveloper 2014-12-19 01:16:05

+0

你为什么只有21点,这是很好的答案。 – NoviceDeveloper 2014-12-19 02:17:20

+0

谢谢,很高兴知道我可以帮忙。我在软件开发方面拥有17年以上的经验,但最近才在stackoverflow上创建帐户。 – 2014-12-19 02:28:41

相关问题