私は現在取り組んでいる一連の関数を持っていますが、そのうちの1つはXMLファイルを解析し、属性ベース私が持っている条件。属性名と値のペアに基づいたXML XMLのlinq検索を作成する
これは私が使用する必要がXMLのサンプルです:
<rs:insert>
<z:row Inst='AM5001' Event='EventA' HostName='HostA' EventType='NORMAL' TXID='0000003327'/>
<z:row Inst='AM5001' Event='EventB' HostName='HostB' EventType='NORMAL' TXID='0000011173'/>
<z:row Inst='AM4067' Event='EventA' HostName='HostA' EventType='NORMAL' TXID='0000011175'/>
<z:row Inst='AM5546' Event='EventC' HostName='HostC' EventType='NORMAL' TXID='0000011177'/>
<z:row Inst='AM4567' Event='EventQ' HostName='HostD' EventType='NORMAL' TXID='0000011593'/>
、これは私がこれまで持っているものの抜粋です:
internal protected IEnumerable<XElement> GetElement(XDocument oXMLDoc
, List<KeyValuePair<string, string>> SearchCriteria)
{
var vElementQuery = oXMLDoc.Elements()
.Where(e => SearchCriteria.ForEach(sc => e.Attribute(sc.Key).Value.ToUpper() == sc.Value.ToUpper()))
.Select(e => e);
foreach (var xElement in vElementQuery)
{
yield return xElement;
}
}
私はエラーを取得していますvElementQueryの私のwhere句に:
のみ割り当て、呼び出し、インクリメント、デクリメント、待って、新しいオブジェクト 式はuのことができステートメントとしてsed
簡単に言うと、私はInstとEventに基づいてクエリを実行しますが、時にはホスト名とEventtypeに基づいている必要があります。
基本的には、一致させる必要のある属性条件の数がわからないので、リストまたは配列として追加することができます。KeyValuePair
は名前と私が必要とする比較(値)。
ありがとうございました。
驚くばかりです。故障のためにありがとう - それは将来私を助けるでしょう。 – clogue