У меня есть следующие XDocument:Разбор XDocument
<ExtensionInfo>
<ObjectExtension />
<AttributeExtension>
<Attribute Name="PV" ExtensionType="inputoutputextension" InheritedFromTagName="$CT_STQ_V2" />
<Attribute Name="PV" ExtensionType="logdatachangeeventextension" InheritedFromTagName="$CT_STQ_V2" />
<Attribute Name="STS" ExtensionType="inputoutputextension" InheritedFromTagName="$CT_STQ_V2" />
<Attribute Name="STS" ExtensionType="booleanextension" InheritedFromTagName="$CT_STQ_V2" />
<Attribute Name="STS" ExtensionType="alarmextension" InheritedFromTagName="$CT_STQ_V2" />
<Attribute Name="STS" ExtensionType="logdatachangeeventextension" InheritedFromTagName="$CT_STQ_V2" />
</AttributeExtension>
</ExtensionInfo>
Я пытаюсь вернуть $ CT_STQ_V2 тогда и только тогда, когда атрибут Name = "СТС" и ExtensionType = "alarmextension"
Как я могу используйте XDocument & Запрос LINQ, чтобы получить то, что мне нужно. Мне нужно разобрать тысячи XML-файлов, поэтому потребуется высокая производительность. Любые предложения помогут.
спасибо.
что у вас до сих пор? –
Просмотрите блог [this] (https://www.intertech.com/Blog/query-an-xml-document-using-linq-to-xml/) и обновите свой вопрос, чтобы показать свои усилия. –
var q1 = from elm in xd.Descendants ("Attribute") где (string) elm.Attribute ("Name") == myObjectReader ["AttributeName"]. ToString() где (string) elm.Attribute (" ExtensionType ") ==" alarmextension " select elm; foreach (var elm in q1) { inherited = (string) elm.Attribute ("InheritedFromTagName"); } – MaverickTM