我有一部分应用程序初始化字符串:
<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值的硬编码....所以从init字符串中获取elementname和id并将它们存储为键值对的通用解决方案真的很棒....提前感谢:)
PS:使用C#.....
答案 0 :(得分:0)
好的......做完......:)
这就是我所做的:使用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 );
}
}
}