<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<facilities>
<facility
id="event.wiring"
type="Castle.Facilities.EventWiring.EventWiringFacility, Castle.MicroKernel" />
</facilities>
<components>
<component
id="123"
type="FlowEngine.SimplePublisher, FlowEngine">
<subscribers>
<subscriber id="listener.component"
event="Event"
handler="OnPublishEvent"/>
<subscriber id="listener.component2"
event="Event"
handler="OnPublishEvent2"/>
</subscribers>
<parameters>
<parameter name="A" key="guid_A"></parameter>
<parameter name="B" key="guid_B"></parameter>
</parameters>
</component>
<component
id="listener.component"
type="FlowEngine.SimpleListener, FlowEngine" />
<component
id="listener.component2"
type="FlowEngine.SimpleListener2, FlowEngine" />
</components>
</configuration>
找出compoment的属性id=3的特定Component节点下<parameters>节点下所有的<parameter>节点中的内容,并以Dictionary<string,string>的形式返回,使用<parameter>节点中的name属性的值做为键,使用<parameter>节点中的key属性的值做为键值,请指点下
|
static private Dictionary<String, String> GetConfiguration(String fileName, String id)
{
Dictionary<String, String> dict = new Dictionary<string, string>();
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.Load("configuration.xml");
System.Xml.XmlNodeList parameters = doc.SelectNodes(String.Format(
"//component[@id='{0}']/parameters/parameter",
id));
foreach (System.Xml.XmlNode parameter in parameters)
{
try
{
dict.Add(parameter.Attributes["name"].Value,
parameter.Attributes["key"].Value);
}
catch
{
}
}
return dict;
} dim xml = ...' 那个XML dim component =(from x in xml...<component> _ where x@id="3").First dim parameters =(from parameter in componet...<parameter> _ select parameter@name,parameter@key).ToDictionary(Of String)(Function(x) (x.name)) |