0

我需要得到

  1. “输入用户名”、“输入密码”
  2. “stack@gmail.com”/“abcd*”

在单独的列表中

<steps id="0" last="3">
  <step id="1" type="ValidateStep">
    <parameterizedString><text>Enter User Name</text></parameterizedString>
    <parameterizedString><text>stack@gmail.com</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();
4

1 回答 1

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());
于 2013-04-05T22:20:25.310 回答