0

我在下面有一部分应用程序初始化字符串:

<Controls>
  <HtmlElement name="lnkLogIn" type="HtmlElement">
    <AttributeMatchPath matchtype="equals">
      <href>JavaScript:void(0)</href>
      <id>s_swepi_22</id>
    </AttributeMatchPath>
  </HtmlElement>
  <InputElement name="tbPassword" type="InputElement">
    <AttributeMatchPath matchtype="equals">
      <id>s_swepi_2</id>
    </AttributeMatchPath>
  </InputElement>
  <InputElement name="tbUserID" type="InputElement">
    <AttributeMatchPath matchtype="equals">
      <id>s_swepi_1</id>
    </AttributeMatchPath>
  </InputElement>
</Controls>

我想要在后面的代码中做的是一个函数,它获取每个控件的 Inputelement 名称和 id 作为键值对,并返回一个字典对象或类似的东西,我们可以从中提取键值对信息。

这基本上是为了删除 ID 值的硬编码......所以从初始化字符串中获取元素名和 id 并将它们存储为键值对的通用解决方案将非常棒......在此先感谢 :)

PS:使用C#......

4

1 回答 1

0

OK完成.... :)

这就是我所做的:使用 system.xml.linq 功能:

这是工作代码:

using System.Linq;
using System.Xml.Linq;

static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    public static void Main ( )
    {
        var xDoc = XElement.Load ( "ApplicationInit.xml" );
        var appSettingsDictionary = (xDoc.Descendants("InputElement")
            .Select ( item => new 
                             { 
                                 Key = item.Attribute("name").Value,
                                 Value = item.Descendants("id").First().Value 
                             }
                    )
                ).ToDictionary ( item => item.Key, item => item.Value );
    }
}

}

于 2012-07-12T13:41:00.843 回答