WebHU - Programozási kérdések és válaszok

Az Xelement kivonja az xml fájlt a különböző fájlokból, és egyesítse vissza xml-be

Megvan ez az XML. Meg akarom találni az elsőt/kicsomagolni az elsőt a order-no="00070853" paraméterrel C#-ban, és később kombinálni szeretném más fájlokból ugyanazzal az xml-lel, hogy ugyanaz legyen a séma. Kipróbáltam (csak kivonat miatt, de jó lenne tudni, hogyan kell kombinálni)

      IEnumerable<XElement> orderXml = from el in xdoc.Descendants(ns + "order")
      where (string)el.Attribute(ns + "order-no").Value == badOrder
      select el;

Lent egy példa az xml-re (van benne séma, amit én is szeretnék)

      <?xml version="1.0" encoding="UTF-8"?>
      <orders xmlns="http://www.bla.com/xml/impex/order/2006-10-31">
<order order-no="00070853">
    <order-date>2015-12-10T21:58:26.000Z</order-date>
    <created-by>storefront</created-by>        
    <taxation>net</taxation>
    <invoice-no>55023028</invoice-no>
    <customer>
        <customer-no>10028489</customer-no>            
    </customer>
    <status>
        <order-status>NEW</order-status>
        <shipping-status>NOT_SHIPPED</shipping-status>
        <confirmation-status>CONFIRMED</confirmation-status>
        <payment-status>NOT_PAID</payment-status>
    </status>        
</order>

<order order-no="10020785">
    <order-date>2015-12-10T21:58:04.000Z</order-date>
    <created-by>storefront</created-by>
    <taxation>net</taxation>
    <invoice-no>12022832</invoice-no>
    <customer>
        <customer-no>10027992</customer-no>
    </customer>
    <status>
        <order-status>NEW</order-status>
        <shipping-status>NOT_SHIPPED</shipping-status>
        <confirmation-status>CONFIRMED</confirmation-status>
        <payment-status>NOT_PAID</payment-status>
    </status>
</order>
     </orders>
14.12.2015

  • A kérdése nem egyértelmű. Hozzá szeretné adni a szűrt csomópontot egy másik XML-hez? 14.12.2015
  • @DenisL Mi a probléma a kódoddal? 14.12.2015
  • Több száz fájlon megyek keresztül, amelyek XML-t tartalmaznak a fenti formátumban. (egyszerűsített). Néhány rendelés meghiúsult, ezért ki szeretném bontani ezeket a ‹megrendelési› csomópontokat (plusz mindent, ami lent van) különböző xml-fájlokból, és ugyanazt a sémát használva 1 XML-fájlba szeretném egyesíteni. 14.12.2015

Válaszok:


1

Feltéve, hogy minden feldolgozott fájlnak ugyanaz a pontos szerkezete, egyszerűen beolvashatja a fájlokat, és az elemeket egy új dokumentumba dobhatja. Érdemes nyomon követni azt a fájlt, amelyből az adatokat szerezte.

var orderNo = "00070853";
var dir = @"c:\path\to\files\";
XNamespace ns = "http://www.bla.com/xml/impex/order/2006-10-31";
XNamespace meta = "urn:file.combiner:meta";
var newDoc = new XDocument(
    new XElement(ns + "orders",
        new XAttribute(XNamespace.Xmlns + "meta", meta),
        from p in Directory.EnumerateFiles(dir, @"*.xml")
        from e in XDocument.Load(p).Descendants(ns + "order")
        where (string)e.Attribute("order-no") == orderNo
        select new XElement(e.Name,
            new XAttribute(meta + "path", p), // lets add the original path as an attribute
            e.Nodes()
        )
    )
);
01.06.2016
Új anyagok

A rádiógomb ellenőrzött eseményének használata a jQueryben
Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

Miért érdemes elkezdeni a kódolást 2023-ban?
01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

🎙 Random Noise #2  – Örökbefogadás és hit
az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..