Вот моя примерная XML-схема, созданная SQL Server. Я хочу, чтобы он назначал List<class>
в C# с помощью LINQ. Я попробовал, но я получаю шесть строк, но после разбора этого XML. Я должен получить только один ряд в списке.Как обрабатывать XML-файл в список C# <T> на условной основе?
Есть несколько условий для анализа этого XML.
- TYPE == 1, то SMS,
- TYPE == 3 затем DATA
- TYPE == 2, то ПРОТОКОЛ
XML:
<summary>
<period>Jul-2016</period>
<providerid>7</providerid>
<type>1</type>
<volume>2981655</volume>
</summary>
<summary>
<period>Jul-2016</period>
<providerid>7</providerid>
<type>2</type>
<volume>6449570</volume>
</summary>
<summary>
<period>Jul-2016</period>
<providerid>7</providerid>
<type>3</type>
<volume>7702484</volume>
</summary>
Вот мой C# класса. Я хочу проанализировать эту XML-схему в List<UsageSummary>
. После разбора это будет только два ряда в List<UsageSummary>
. Я использовал XDocument.Parse
для синтаксического анализа XML. После этого я использую метод Linq .Descendants
, но я получаю шесть строк, но вывод должен содержать только одну строку.
public class UsageSummary
{
public int carrierID { get; set; }
public Int64 minutes { get; set; }
public Int64 sms { get; set; }
public Int64 data { get; set; }
public string period { get; set; }
}
Я использовал этот код:
List<UsageSummary> obj = new List<UsageSummary>();
obj = (from res in xmlDoc.Descendants("summary")
select new UsageSummary
{
carrierID = (Convert.ToInt16(res.Element("providerid").Value)),
period = res.Element("period").Value.ToString(),
sms = (Convert.ToInt64(res.Element("SMS").Value)),
data = (Convert.ToInt64(res.Element("DATA").Value)),
minutes = (Convert.ToInt64(res.Element("MINUTES").Value))
}).ToList();
Пожалуйста, помогите мне с этой проблемой.
выход содержит одну строку, какой из них, что такое состояние, и вы можете поделиться код, который вы пытались – Mostafiz
я отправил ответ, который я использовал в своем коде, но получаю три строки, но должна содержать одну строку. –
с учетом данных, которые вы опубликовали, тогда у вас должно быть три строки (без применения фильтрации и/или группировки). Есть ли еще какие-либо общие элементы xml, которые не отображаются в разделе входных данных вашего сообщения? –