XML вывод всех значений атрибута - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, документ состоит из объектов с тегом <object> (Их много). Мне необходимо выписать все значения атрибутов name С XML работать не умею, заранее спасибо.
<?xml version="1.0" encoding="windows-1251"?>
<system>
 
<state change="0">
<group name="efefefeffe">
 
<object id="300010" phone="+72422424" name="кпкпкпкпкп" color="4194368" debug="0" eventparser="ccu6225_SMS_CSD_BAGIRA.xsl" statecolor="0" change="0" lat="56.282879" lon="36.675415" look_at="0" disable="0">
  <objectinfo>
    <picture src="d:\vcc\tmonitor\pictures\20070430175951_13304.bmp"/>
    <categoria>Недвижимость</categoria>
    <owner></owner>
    <otv>ООО </otv>
    <address></address>
    <model/>
    <regnum/>
    <comment>ПРЕЖДЕ ЧЕМ ПРЕДПРИНИМАТЬ КАКИЕ ЛИБО ДЕЙСТВИЯ Наименование оборудования: CCU 6225 
</comment>
  </objectinfo>
  <options static="1" lat="56.282879" lon="36.675415">
    <smsmodem name="modem2"/>
    <voicemodem name="modem2"/>
    <datamodem name="modem2"/>
  </options>
  <device type="CCU-6225S"/>
  
  <tag name="state" value="10" changetimeout="0" log="0" range="lo" lastts="2017-05-29 21:27:12" text="Снят с охраны" textcolor="0">

<state value="0" text="Состояние не известно" range="ll"/>
<state value="50" text="Тревога снята"/>
<state text="Под охраной" value="60"/>
<state value="10" text="Снят с охраны" range="lo"/>
<state value="100" text="Тревога" range="hh"/>
<state value="99" text="Нет связи с объектом"/>
</tag>
 
  <tag name="linkstatus" value="0" changetimeout="0" log="0" lastts="2007-06-30 16:15:37" text="Состояние связи неизвестно" range="ll">
 
<ll value="0" text="Состояние связи неизвестно"/>
<lo value="1" text="Нет связи с объектом"/>
 
</tag>
<commands><command name="Опрос состояния" signal="ASK" type="CONTEXT" icon="C:\Program Files\xampp\htdocs\tmonitor\icons\none.bmp"/>
<command name="Сброс тревоги" signal="RESET" type="CONTEXT" icon="C:\Program Files\xampp\htdocs\tmonitor\icons\none.bmp"/></commands>
 
<tag name="mytimer" value="0" log="0" timer="0" lastts="2016-07-16 01:16:06" range="" text="" lastsms="22.08.17.01:17">
<hi value="23000"/>
</tag>
<tag name="220" value="1" lastts="2017-05-29 21:26:45" range=""/>
<tag name="Status" value="0" lastts="2015-06-22 11:49:20" range="">
    <Status value="0" text="Снят с охраны" range="lo"/>
    <Status value="1" text="Стоит под охраной" range="hl"/>
    <Status value="3" text="Нет 220" range="ll"/><text/>
</tag>
<tag name="WorkTime" value="0" text="Открыт/Рабочее время" use="0" lastts="2015-06-22 12:50:00" range="" R="12:50:00" N="12:04:00">
    <WorkTime value="0" text="Открыт/Рабочее время"/>
    <WorkTime value="1" text="Закрыт/Не рабочее время"/>
</tag>
 
<tag name="RTimer" value="24" text="ТАЙМЕР часы"/><tag name="AKB" value="100%" lastts="2017-05-30 01:17:30" range=""/></object>

Решение задачи: «XML вывод всех значений атрибута»

textual
Листинг программы
var xdoc = XDocument.Load(@"c:\systems.xml");
IEnumerable<string> allNames = xdoc.XPathSelectElements("//object[@name]").Select(x => x.Attribute("name").Value);
foreach (string name in allNames) { ... }

Оцени полезность:

8   голосов , оценка 3.625 из 5
Похожие ответы