2013-04-05 133 views
0

解析我需要得到XML具有相同的標籤

  1. 「輸入用戶名」, 「輸入密碼」
  2. [email protected]」/ 「ABCD *」

在單獨的列表

<steps id="0" last="3"> 
    <step id="1" type="ValidateStep"> 
    <parameterizedString><text>Enter User Name</text></parameterizedString> 
    <parameterizedString><text>[email protected]</text></parameterizedString> 
    <description> 
    </description> 
    </step> 
    <step id="2" type="ValidateStep"> 
    <parameterizedString><text>EnterPassword</text> </parameterizedString> 
    <parameterizedString><text>abcd*</text></parameterizedString> 
    <description></description></step> 
    <step id="3" type="ActionStep"> 
    <parameterizedString> 
    <text>Click on Login Button</text> 
    </parameterizedString><parameterizedString /> 
    <description /> 
    </step> 
</steps> 

XDocument doc = XDocument.Parse(xmlSteps); 
var values = (from f in doc.Elements().Descendants() 
       select f.Attribute("text").Value).ToArray(); 
+0

你有什麼問題嗎? – WereWolfBoy 2013-04-05 10:21:53

+0

我需要將[email protected]和abcd *放到列表中。 – Pat 2013-04-05 10:34:07

+0

它是否總是用'id =「1」'''步''你想要? – Default 2013-04-05 13:28:24

回答

1

假設你想這對於步驟1 & 2只(否則刪除與註釋的行),可以使用類似於此:

var values = doc.Descendants("step") 
      .Where(step => new[] { "1", "2" }.Contains(step.Attribute("id").Value)) //only step 1 & 2 
      .Select(step => step.Descendants("text").Select(text => text.Value).ToList()); 
相關問題