using System.Collections;
using System.Collections.Generic;
using System.Data.DataSetExtensions;
using System.Text.RegularExpressions;
using System.Xml.Serialization;
using System.Globalization;
using System.Diagnostics;
using static System.Console;
public static void Main() {
string input = @"<ExtensionInfo>
<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"" />
XDocument doc = XDocument.Parse(input);
var element = doc.Descendants("AttributeExtension")
.FirstOrDefault(x=>(string)x.Attribute("Name") == "STS" && (string)x.Attribute("ExtensionType") == "alarmextension");
element.Attribute("InheritedFromTagName").Value.Dump();