Laden...

XML Dateien durchsuchen nach spezifischen Bezeichnungen und Werten

Erstellt von mrennen vor 7 Jahren Letzter Beitrag vor 7 Jahren 821 Views
M
mrennen Themenstarter:in
166 Beiträge seit 2008
vor 7 Jahren
XML Dateien durchsuchen nach spezifischen Bezeichnungen und Werten

Hallo zusammen,

ich habe da ein Problem mit dem Einlesen einer XML in ein DataTable. Hier ein Beispiel der XML Datei:


<Cobalt>
    <Asset AssetType="APPAREL" InternalID="1">
        <type_metadata>
            <FIELD name="name">1602102000133773.mpg</FIELD>
            <FIELD name="date">2016-08-08</FIELD>
        </type_metadata>
        <custom_metadata>
            <FIELD name="date_in">2016-02-10 20:00:00</FIELD>
            <FIELD name="date_out">2016-02-10 20:10:00</FIELD>
            <FIELD name="product_number">123456</FIELD>
            <FIELD name="comment"/>
            <FIELD name="product_description">Test 1</FIELD>
        </custom_metadata>
    </Asset>
    <Asset AssetType="APPAREL" InternalID="2">
        <type_metadata>
            <FIELD name="name">1602102000133781.mpg</FIELD>
            <FIELD name="date">2016-08-08</FIELD>
        </type_metadata>
        <custom_metadata>
            <FIELD name="date_in">2016-02-10 20:10:01</FIELD>
            <FIELD name="date_out">2016-02-10 20:20:00</FIELD>
            <FIELD name="product_number">123457</FIELD>
            <FIELD name="comment"/>
            <FIELD name="product_description">Test 2</FIELD>
        </custom_metadata>
    </Asset>
    <Asset AssetType="APPAREL" InternalID="3">
        <type_metadata>
            <FIELD name="name">1602102000133800.mpg</FIELD>
            <FIELD name="date">2016-08-08</FIELD>
        </type_metadata>
        <custom_metadata>
            <FIELD name="date_in">2016-02-10 20:20:01</FIELD>
            <FIELD name="date_out">2016-02-10 20:30:00</FIELD>
            <FIELD name="product_number">123458</FIELD>
            <FIELD name="comment"/>
            <FIELD name="product_description">Test 3</FIELD>
        </custom_metadata>
    </Asset>
</Cobalt>

Es sind 3 Zeilen welche zu verarbeiten sind, z.B. FIELD name="date_in" ist die Bezeichnung, während 2016-02-10 20:00:00 der entsprechende Wert ist.

Kann mir bitte jemand einen Denkanstoß geben?

Danke und Gruß

Michael

2.079 Beiträge seit 2012
vor 7 Jahren

Schau dir mal LINQ to XML an, damit lässt sich das sehr einfach machen.

Damit kannst Du dann Element für Element durch laufen und in Form einer LINQ-Query die Daten zurück geben, die in Frage kommen.
Was Du danach dann tust, in eine DataTable laden oder sonst was, ist dann zweitrangig.

NuGet Packages im Code auslesen
lock Alternative für async/await

Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.