Если вы хотите просто Excitation
, вы можете использовать:
string excitation = sensorDoc.Root.Descendants("Sensor")
.Where(w => w.Attribute("ID").Value == sensorSN)
.Select(w => w.Element("Amplifier").Value)
.FirstOrDefault();
Обратите внимание, что w => w.Element("Amplifier").Value
или w.Element("Amplifier").Element("Excitation").Value
заполняют 15 V
,
и w => w.Element("Amplifier")
заполняют <Amplifier><Excitation>15 V</Excitation </Amplifier
.
Если вы хотите DW
и 15 V
, вы можете использовать:
var calInitialsAndExcitation = sensorDoc.Root.Descendants("Sensor")
.Where(w => w.Attribute("ID").Value == sensorSN)
.Select(w =>
new {
CalInitials = w.Element("CalInitials").Value,
Excitation = w.Element("Amplifier").Element("Excitation").Value
}).FirstOrDefault();
UPDATE
string typeGage = setupFile.Root.Descendants("Setup").Descendants("Devices")
.Where(w => w.Element("Device").Attribute("Type").Value == "AI"
&& w.Element("Device").Element("Slot").Attribute("Index").Value == "0")
.Select(w => w.Element("Device").Element("Slot").Element("MeasuredValue").Value)
.FirstOrDefault();
Обновить согласно комментарию
var typeGage = setupFile.Descendants("Device")
.Where(d => d.Attribute("Type").Value == "AI")
.Descendants("Slot")
.Where(s => s.Attribute("Index").Value == "2")
.Select(m => m.Element("OutputChannel")?.Element("MeasuredQuantity")?.Value)
.FirstOrDefault();
Надеюсь, вы найдете это полезным.