2016-04-25 2 views
1

У меня есть ниже XML (в 1 файл)Конкретных XML-данные в C#

<ROW QUALIFYPREFIX="PayerAddressChildItem_R1_" PKEY="2128465"> 
<COL NAME="IsDefault" TYPE="FieldTypeBoolean" HIDDEN="1" OVALUE="0" VALUE="0" DVALUE="No" /> 
<COL NAME="AddressType" TYPE="FieldTypeValidValues" OVALUE="Billing" VALUE="Billing" DVALUE="Billing" /> 
<COL NAME="AddressLine1" TYPE="FieldTypeVarchar" OVALUE="111 sts" VALUE="111 sts" DVALUE="111 sts" /> 
<COL NAME="AddressLine2" TYPE="FieldTypeVarchar" OVALUE="" VALUE="" DVALUE="" /> 
<COL NAME="City" TYPE="FieldTypeVarchar" OVALUE="new york" VALUE="new york" DVALUE="new york" /> 
<COL NAME="State" TYPE="FieldTypeState" OVALUE="NC" VALUE="NC" DVALUE="NC" /> 
<COL NAME="Zip" TYPE="FieldTypeZipCode" OVALUE="10010" VALUE="10010" DVALUE="10010" /> 
<COL NAME="BasedOn" TYPE="FieldTypeValidValues" OVALUE="Billed Date" VALUE="Billed Date" DVALUE="Billed Date" /> 
<COL NAME="EffectiveDate" TYPE="FieldTypeDate" OVALUE="4/22/2016 12:00:00 AM" VALUE="4/22/2016" DVALUE="4/22/2016" /> 
<COL NAME="ExpirationDate" TYPE="FieldTypeDate" OVALUE="" VALUE="" DVALUE="" /> 
</ROW> 

<ROW QUALIFYPREFIX="PayerAddressChildItem_R2_" REQUEST="WRITE"> 
<COL NAME="IsDefault" TYPE="FieldTypeBoolean" HIDDEN="1" OVALUE="" VALUE="" DVALUE="Unknown" /> 
<COL NAME="AddressType" TYPE="FieldTypeValidValues" OVALUE="" VALUE="Billing" DVALUE="Billing" /> 
<COL NAME="AddressLine1" TYPE="FieldTypeVarchar" OVALUE="" VALUE="111 sts" DVALUE="111 sts" /> 
<COL NAME="AddressLine2" TYPE="FieldTypeVarchar" OVALUE="" VALUE="" DVALUE="" /> 
<COL NAME="City" TYPE="FieldTypeVarchar" OVALUE="" VALUE="new york" DVALUE="new york" /> 
<COL NAME="State" TYPE="FieldTypeState" OVALUE="" VALUE="AE" DVALUE="AE" /> 
<COL NAME="Zip" TYPE="FieldTypeZipCode" OVALUE="" VALUE="10010" DVALUE="10010" /> 
<COL NAME="BasedOn" TYPE="FieldTypeValidValues" OVALUE="" VALUE="Billed Date" DVALUE="Billed Date" /> 
<COL NAME="EffectiveDate" TYPE="FieldTypeDate" OVALUE="" VALUE="4/23/2016" DVALUE="4/23/2016" /> 
<COL NAME="ExpirationDate" TYPE="FieldTypeDate" OVALUE="" VALUE="" DVALUE="" /> 
</ROW> 

Я хочу, чтобы хранить только значение COL NAME = "EffectiveDate" в списке. В этом случае есть 2. Значение первого EffectiveDate = 4/22/2016 и второго EffectiveDate = 4/23/2016.

Любая идея, как достичь этого?

ответ

2

Ну, ваши данные не является действительным XML-документом. Вы можете сделать его действительным документом, добавив фиктивный корневой элемент.

Как только вы действуете Xml, вы можете просто сделать Linq до Xml.

XDocument root = XDocument.Load(filepath); 

var results = root 
    .Descendants("COL") 
    .Where(x=>x.Attribute("NAME").Value == "EffectiveDate") 
    .Select(x=>x.Attribute("VALUE").Value); 

Выход

4/22/2016 
4/23/2016 

Взгляните этот demo

+0

Спасибо Хари. Это сработало :) – mathewtinuthomas