2016-04-25 4 views
1

ich unter xml haben (in 1 Datei)Get Specific XML-Daten in 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> 

speichere ich will nur den Wert von COL NAME = "EffectiveDate" in einer Liste. In diesem Fall gibt es 2. Wert des ersten EffectiveDate = 4/22/2016 und für das zweite EffectiveDate = 4/23/2016.

Irgendeine Idee, wie man das erreicht?

Antwort

2

Nun, Ihre Daten ist nicht ein gültiges XML-Dokument. Sie könnten es zu einem gültigen Dokument machen, indem Sie ein Dummy-Wurzelelement hinzufügen.

Sobald Sie Xml haben, können Sie einfach Linq zu Xml tun.

XDocument root = XDocument.Load(filepath); 

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

Ausgabe

4/22/2016 
4/23/2016 

haben einen Blick dieses demo

+0

Dank Hari. Es funktionierte :) – mathewtinuthomas