XML解析具有相同的标记

时间:2013-04-05 09:39:07

标签: c# xml c#-4.0 xml-parsing

我需要

  1. “输入用户名”,“输入密码”
  2. “stack@gmail.com”/“abcd *”
  3. 在单独的列表中

    <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();
    

1 个答案:

答案 0 :(得分:1)

假设你想要第1步&amp;仅限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());