2014-12-19 64 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

相關問題