Elemezzen xml fájlt a c #

Helló Van egy xml fájl az ASP.NET projektben. Ezután az Oracle adatbázis táblába íródik. Ezután elolvastam egy külön konzolalkalmazásból, és meg kell szakítania a mezők adatait. És írja le ezeket a mezőket már a döntő asztalon, ahol azokat tárolni kell. Így néz ki az xmlem.

És itt olvastam:

És ki kell húznom a tiszta értékeket, amelyek a címkék között vannak. 1500-tól innen csak 1500-at kell kihúzni egy megfelelő változó biztosítékban. És így az egész xml-ku. Meg tudja mondani, hogy ez nem nehéz és nem túl költséges? Lehet, hogy valakinek van vázlata a kódról. Hogyan lehet ezt megtenni? Köszönöm előre.

Az Ön konkrét esetében számos megközelítés létezik.
Megpróbálom leírni őket amennyire csak lehetséges.

1. XML lebontása az XmlSerializer segítségével

Másolja az XML szövegét a vágólapra.
Nyissa meg a Visual Studio alkalmazást. menü Szerkesztés - Speciális beillesztés - XML ​​beillesztése mint osztályok.
A stúdió elemzi az XML-ku-t, és létrehozza az objektummodelljét, ebben az esetben csak egy osztály lesz, mivel az XML-nek meglehetősen egyszerű szerkezete van.
Nekem volt ez a kód:

Elvileg már dolgozhat ezzel, de azt javaslom, hogy alaposan tanulmányozd ezt az osztályt, és újragondolod:
Először a C # modern verzióinak "zsemlét" használatával megszabadulhatsz a felesleges mezőketől, és helyettesítheted őket az automatikus tulajdonságokkal, például a következő kóddal:

Egy automatikus tulajdonsággal helyettesítheti:

Figyelem, ezt csak akkor kell elvégezni, ha nincs "üzleti logika" a tulajdonságokra.
Másodszor ellenőrizze, hogy a stúdió helyesen nyomtatta-e a tulajdonságok típusát, például, ha az olvadóbiztosíték negatív szám is lehet, ezért a tulajdonságtípust rövid vagy int / hosszúra kell cserélni az aláírás nélküli tábla helyett.
És így tovább.

Most használhatjuk ezt a modellt és lebonthatjuk azt:

Most van egy kész objektum az acélcsomagban, amely az XML-t képviseli, és felhasználható:

2. A LinqToXml technológia használata

Ebben a megközelítésben nem kell létrehoznia az XML-objektummodellt, amely csökkenti a kódot, viszont egy kicsit megnehezíti a logikát, és nem könnyíti meg a teljes objektum (gépelés, IntelliSense utasítások) használatát.
Töltsük be az XML-t XDocument típusú objektumba:

Mindent! Most már bármelyik elemet / attribútumot kiválaszthatja egyszerűen az XML-fa segítségével (a legfontosabb, hogy ne tévedj a nevekkel):

3. Az ODP.NET illesztőprogram által biztosított eszközök használata az XmlType típusú mezők kitöltéséhez

Ha az új hivatalos Oracle ODP.NET, Managed Driver programot használja. és azt javasoljuk, használja azt, használhatja az OracleDataReader osztály GetOracleXmlType módját.
Ebben az esetben nem szükséges az XmlType beillesztése a szerver oldalán lévő karakterláncba:

akkor írja át újra az olvasási kódot:

azaz a kimeneten már elkészült egy már elkészített XmlDocument. bár kicsit keltezött és kissé nehezebb, mint az XDocument. de a kliens oldalon végzett munka is lehet nyereségesebb, mint egy kiszolgálói oldalon lévő karakterláncban szereplő XmlType (és nem feltétlenül ellenőrizni kell):

Kapcsolódó cikkek