Как прочитать конкретное значение из объекта XElement в C # (SqlDependencyEx) - PullRequest
0 голосов
/ 11 февраля 2019

Мне нужно прочитать определенный элемент XML-файла (ну, не совсем FILE - это XElement, сгенерированный классом SqlDependencyEx, который отправляет мне запись из БД, которая была только что обновлена).

Итак, у меня естьпримерно так:

private void Send_Row_To_Queue(object sender, 
SqlDependencyEx.TableChangedEventArgs e)
{
XElement myElement = e.Data;
MessageBox.Show(myElement .ToString());
}

И на самом деле - он печатает красивый текст в формате XML ... Но я понятия не имею, как я могу прочитать <id> в первом узле (вставленном) из него ...

<root>
<inserted>
<row>
<id>13</id>
<line_number>12</line_number>
<comment>Wrongtypex</comment>
</row>
</inserted>
<deleted>
<row>
<id>13</id>
<line_number>12</line_number>
<comment>Wrongtypex</comment>
</row>
</deleted>
</root>

Существует множество ответов, в которых они объясняют, как читать из PURE FILE (Который имеет путь и т. Д.), Но ни один из них не решил мою конкретную проблему.Спасибо за помощь!

1 Ответ

0 голосов
/ 11 февраля 2019

Вы должны быть в состоянии следовать любому примеру, использующему LINQ-to-XML для чтения XML, с небольшими изменениями.Вот 2 возможных способа, например:

XElement myElement = e.Data;

// 1st way using method chaining
var id1 = myElement.Element("inserted").Element("row").Element("id").Value;

// 2nd way using XPath
using System.Xml.XPath;
var id2 = myElement.XPathSelectElement("inserted/row/id").Value;

dotnetfiddle demo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...