Elegáns leolvasható, nagy XML-fájlok
A cikk bemutatja, hogyan lehet, hogy egy elegáns olvasás nagy XML-fájlok
Ha szükséges, olvassa el az XML, az egyik megközelítés lehet alkalmazni fájl teljesen betöltve a DOM és szekvenciális olvasási. Teljes terhelés egy XML fájlt a DOM végrehajtani 1C c keresztül DokumentDOM objektumot. DOM - ez jó, de nem fogok beszélni ma, mert ez egy viszonylag nagy XML fájlokat, majd DOM nem alkalmas. Szekvenciális olvasási XML fájlok végrehajtani 1C révén egy ilyen tárgy ChtenieXML. Vannak más tárgyak a 1C az XML, de ma megint nem róluk.
ChtenieXML tárgy - egy fényes képviselője a megközelítés egymást olvasni XML fájl. Biztos vagyok benne, elképzelni, hogy a kód így néz ki a ChtenieXML objektumot. Ez rengeteg hurkok és feltételek összehasonlítás típusát és a fogadó nevét. Nem szeretem ezt a kódot, és én nem írtam. Ha nincs ötlete, hogy ez hogyan néz ki a kódot, oldja meg a problémát az alábbiakban leírt demo segítségével ChtenieXML objektumot, és akkor lesz világos, hogy mit mondok.
A bejáratnál Kontragenty.xml fájlt a következő szerkezete és tartalma:
Az általunk forgalmazott teherfelvevő ügyfelek ügyfelek Letöltés”. Ha rákattint a „Download” gombra, a következő kódot:
Először hozzon létre egy univerzális ElegantnoeChtenieXML feldolgozásán, és a Read metódust. Az első argumentum a neve az XML fájl. A második argumentum egy speciális objektumot a megbízott. Feldolgozás az XML fájlt szekvenciálisan, elindítja módszerek küldött tárgy elején az olvasó egység, a befejezés egység olvasási és néhány más esetben.
A küldött tárgy végre kell hajtania az alábbi módszerekkel:
Eljárás 1. Start (ChtenieXML) Export - ezt az eljárást elején kezdődött a folyamat az XML fájl, akkor lehet kezdeményezni bizonyos változók és konfigurálja tárgy ChtenieXML
2. befejezése function () Export - ez a funkció elindítja a legújabb, és vissza kell térnie az eredménye a fájl feldolgozása, és térhet vissza definiálatlan - ez normális
3. Funkció UzelNachalo (ChtenieXML, Node) Export - ez a funkció aktiválódik, valahányszor egy új csomópontot kezd feldolgozni. A paraméter Node már megvizsgálta az információt a csomópont: a helyi nevet, az URI névtér attribútum tábla, és így tovább. ChtenieXML paraméter átadására, így egymástól függetlenül kiegészítheti a szerelvény szükséges üres telkek. A lényeg - ez a funkció vissza kell igaz, ha a csomópont került feldolgozásra ebben a funkcióban, és hamis, ha nem kezelik. Ha a csomópont nem kerül feldolgozásra, az eljárás lesz az úgynevezett UzelNachalo (ChtenieXML, Node), különben nem fog
4. Funkció UzelZavershenie (csomópont) Export - ez a funkció akkor aktiválódik, ha befejezi feldolgozó csomópont. A paraméter csomópont minden szükséges információt a csomópontot. A lényeg - ez a funkció vissza kell igaz, ha a csomópont került feldolgozásra ebben a funkcióban, és hamis, ha nem kezelik. Ha a csomópont nem kerül feldolgozásra, az eljárás lesz az úgynevezett UzelZavershenie (Node), egyébként nem.
5. UzelNachalo eljárás (ChtenieXML, Node) Export - ezt az eljárást indult minden alkalommal, amikor elkezdődik a feldolgozott csomópont a helyi névtáblát, kivéve, ha ezt megelőzően csomópont nem dolgozza fel a hívást UzelNachalo (ChtenieXML, Node)
6. UzelZavershenie eljárás (Node) Export - ezt az eljárást kezdett, valahányszor feldolgozásának befejezése csomópont a helyi névtáblát, kivéve, ha ezt megelőzően csomópont nem dolgozza fel a hívást UzelZavershenie (Node)
Node paraméter kívül tartalmaz információt a jelenlegi helyén, mégis utal a szülő csomópont. Szülő csomópont létezik még feldolgozott valamennyi gyermek csomópontok. Más szóval, a hozzáférést a szülő csomópontok akkor mindig.
A példánkban az átadott objektumot, hogy a küldött feldolgozási aktuális példányt „betöltése ügyfelek tárgy modul, amely a következő:
Megjegyezzük, hogy a fenti kódot, nincs ciklus, nincs feltételeket az összehasonlítás típusát és a fogadó nevét. Véleményem szerint ez nagyon könnyen olvasható.
Azt meg kellett határozniuk a címkék szögletes zárójelben, mint a szög „lenyelte” infostartom.
3. megjegyzés: A leírás szerint az XML tag nevét csak betűket, számokat és aláhúzást, hanem más karakterek, mint például a „-” vagy „”. Az XML-ben feltételezik, például, az ilyen tag [a-b.c]. Ezért az összes érvénytelen azonosító 1C figyelmen kívül hagyja, így a fenti példában a tag fogja feldolgozni UzelABCNachalo (ChtenieXML, Node).
5. megjegyzés: Node értéket, azaz amelynek szövegét között található a nyitó és záró tag, akkor minél Uzel.Znachenie, de meg lehet csinálni csak a végén a feldolgozó egység, azaz a A módszer UzelZavershenie (Node) vagy UzelZavershenie (Node).
Amellett, hogy ezek a funkciók természetesen vannak mások.
Bízom abban, hogy a jelenlegi végrehajtása nem tökéletes, de nem fejtette ki ezt a feladatot. Csak azt akartam bizonyítani a megközelítés, amely azt hiszem, elegáns.
Ha kérdése van, akkor letöltése ElegantnoeChtenieXML.cf
Köszönöm a figyelmet.
11. Andrew Ovsyankin (Evil Beaver) 4341 8/10/14 18:47 Most a témában
(5) rtnm, mínusz a kerékpár, ki egy bizonyos elegáns olvasás. Kevesebb, mert ez a megközelítés elősegíti között a közösség, ahelyett, hogy álljon a kezdők tanulni kevesebb kerékpáros megoldásokat.
budunovmv; alexscamp; ivon; YPermitin; Egy normális; IvanBoychuk123; baton_pk; zqzq; DrAku1a; 1cWin; rtnm; + 11 - Válasz
6. Alexander *** (a1ex4ndr) 08.10.14 13:11 Most a témában
És tesztelt néhány fájl mérete? És a teszt fájlt a három sor.
7. rtnm rtnm (rtnm) 542 10/08/14 13:13 Most a témában
(6) a1ex4ndr, Nem a méret a fájlt, majd az úton - olvasható egymást. Nem csodát nem lesz összehasonlítható az összes ChtenieXML.
8. DUH Technolover (DJDUH) 16 10/08/14 13:46 Most a témában
9. rtnm rtnm (rtnm) 542 10/08/14 14:01 Most a témában
10. DAnry (DAnry) 12 08/10/14 15:38 Most a témában
Szeretem azt is. Plyusanul.
12. Vladimir Treasurers (Mogidin) 123 10/09/14 13:27 Most a témában
ChtenieXML ugyanaz, de sokkal gyorsabb
15. Constantin Yurin (kostyaomsk) 72 23/10/14 10:23 Most a témában
16. Andrew Ovsyankin (Evil Beaver) 4341 28/10/14 17:01 Most a témában
(12) Mogidin, Th, irányítsa sok? És a számok?
13. Dmitry Knicks (aximo) 668 10/09/14 19:17 Most a témában
By the way, akkor tulajdonképpen a nagy méretű XML-fájlokat? A tény az, hogy ha a jelölő szöveget UV több mint 10 MB (tapasztalatból) platform 8.2 okozhat hibát a fájl mentése.
14. rtnm rtnm (rtnm) 542 10/09/14 22:48 Most a témában
(13) aximo, nagy XML-fájlok UV nem működik
17. DrZombi DrZombi (DrZombi) 05.11.14 15:52 Most a témában
ps dbf az is lehetséges, hogy megszervezze a fát, de szükség van nakoy;)
18. rtnm rtnm (rtnm) 542 05.11.14 17:08 Most a témában
(17) DrZombi, a következő alkalommal, és elmondja az ügyfél „az XML szar Adj DBF, vele csinálni sokkal szebb dolgozni.” :)
19. Konstantin Yurin (kostyaomsk) 72 14/11/14 20:47 Most a témában
A legbosszantóbb dolog a DBF formátum a szöveg hossza mezőben (Félek, hogy hibázik) 254 karaktert, majd az 1C kell ragasztani húrok vagy a kirakodás DBF lehet szétválasztani. És nagyon legújabb verzióit DBF formátumot támogatja, és Memo mező (string korlátlan hosszúságú), de a tárgy 1C XBase többé.
Dbf értelme használni, kivéve, ha kétoldalas AIS típusú paradoxon (FoxPro, 1C 7.7 fájlmód) generál a csere (vagy helyezett bele), vagy egy külső adatforrást.
Sozdanie02.10.14 09:55
Obnovlenie02.10.14 09:55
Kód jelzett otkrytNe