Jump to content

XML Datei bearbeiten


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

vor 7 Minuten schrieb Lian:

Wir verwenden ein whitelisting von wenigen bekannten Dateitypen, mehr steckt nicht dahinter ;-)

 

CSVs bitte wie vorgeschlagen als Texdatei anhängen.

Wow. Respekt. Also bei der Reaktionszeit - und nicht nur da - macht Euch echt absolut niemand etwas vor. Ein riesengroßes Dankeschön für euren Einsatz. :thumb1::applaus:

bearbeitet von BOfH_666
Link zu diesem Kommentar

Hi, leider nicht. Ich werde jetzt wie folgt vorgehen.

1. Importdatei ( XML ) parsen nach Merkmal.

2. Neue Xml Dateien erstellen, nur mit den identifizierten Knoten, Merkmal im Dateinamen einfügen ( Dateiname umbenennen )

3. Neue Dateien mit dem Excelshheet abgleichen, bei Treffer, Datei umbenennen, vorne User im Dateinamen

 

Wenn das grob funktioniert, werde ich das Script verfeinern. Kämpfe mich gerade durch das parsen und erstellen einer neuen XML Datei ( Struktur )

Link zu diesem Kommentar

Ich spare mir mal das Einlesen - das Parsen geht so:

Foreach ( $Node in $xml.SctiesFincgRptgTxStatRpt.TradData.Stat ) {
    $Node.InnerXml
    $Node.OuterXml
    $OutFileId = $Node.TechRcrdId
}

InnerXML ist das, was zwischen den <Stat>-Tags steht. OuterXML schließt die <Stat>-Tags mit ein. Edit: Mit OuterXML erzeugst Du also direkt eine valide XML-Datei mit Start- und End-Tag.

 

Das jetzt in eine Datei zu schreiben und noch den Inhalt der ID als Name zu verwenden, sollte kein Problem sein. Und warum Olaf eine Phobie gegen XML hat, kann ich grad nicht nachvollziehen - nichts ist einfacher, als gutes XML in Powershell zu verarbeiten :-)

 

Und noch so als Tip: Wenn man die For-Schleife einmal ohne Code zwischen { und } durchlaufen läßt, kann man für $Node beim weiteren Bearbeiten Intellisense verwenden :-) Macht vieles einfacher, vor allem bei den eigenartigen Tagnamen, die hier (vermutlich mit einem Grund) auftauchen.

bearbeitet von daabm
Link zu diesem Kommentar
vor 4 Stunden schrieb daabm:

...  Und warum Olaf eine Phobie gegen XML hat, kann ich grad nicht nachvollziehen - nichts ist einfacher, als gutes XML in Powershell zu verarbeiten :-)

 ... 'is eher ne Abneigung als ne Phobie. ;-)  ... und sooo wahnsinnig einfach isses wohl dann doch nicht - sonst würden sich nicht so viele Leute damit so schwer tun ... :aetsch2: ...  meine Vermeidungs- / Umgehungs-Strategie hat bisher ganz gut funktioniert. Lesen und Benutzen klappt - Bearbeiten musste ich bisher nie.  Vielleicht schaff' ich's ja noch bis zur rente mich drumrum zu mogeln.  :grin3::aetsch2::engel:

Link zu diesem Kommentar
vor 27 Minuten schrieb NilsK:

und dann kommt kurz vor deinem letzten Arbeitstag jemand an und wirft dir JSON vor die Füße ...

 

Komisch - JSON finde ich irgendwie deutlich zugänglicher als XML. ... genau wie YAML. Vermutlich sehen das ja auch viele andere so ... sonst wär's ja nicht so populär, oder? ... oder nicht so schnell so populär geworden. XML hatte ja lange genug sein Chance. ;-) Aber wenn mir dieser ominöse Jemand das wirklich erst kurz vor meinem letzten Arbeitstag vor die Füße wirft, dann mach da ich einen g r o ß e n  Schritt drüber und sitze das einfach aus.  :aetsch2: 

Link zu diesem Kommentar
vor 1 Stunde schrieb BOfH_666:

Komisch - JSON finde ich irgendwie deutlich zugänglicher als XML.

Ist auch einfacher, kann dafür weniger. :D Ein Vorteil von XML ist ja, dass man ein Dokument validieren kann. Das ist bei JSON nicht gegeben. Richtig Freude macht auch XSL. Damit kann man sehr viel machen, ohne an einer Anwendung Änderungen vornehmen zu müssen. Wenn man von seiner Anwendung aus ein PDF generieren muss, welches vom (versierten) Anwender anpassbar sein muss, kann man entweder etwas wie Crystal Reports nehmen oder aber man schreibt ein XML, transformiert es mittels XSLT zu XSL-FO und dieses dann in ein PDF. Das Stylesheet ist vom Benutzer frei anpassbar. Umgebungen wie das .NET Framework liefern die notwendigen Werkzeuge (Interpreter etc.) schon mit. Man kann aus einer XML-Datei (oder besser: einem Schema) auch direkt Klassen erzeugen lassen. Liest man dann ein XML ein, hat man alle Elemente in einem Array mit den richtigen Datentypen. (Und das ist unglaublich schnell: ich arbeite oft mit XML-Dateien über 100 MB und das Einlesen dauert keine Sekunde.)

Link zu diesem Kommentar

HM, bekomme immer hier einen Fehler. Muss mir mal den $Node anschauen, den ich mir geschrieben habe

 

$OutFileId = $Node.TechRcrdId


ERROR: In C:\DTCC TEST\Sta_Einlesen_Test.ps1:48 Zeichen:31
ERROR: +     $OutFileId = $Node.TechRcrdId
ERROR: +                                  ~
ERROR: Unerwartetes Token "" in Ausdruck oder Anweisung.
ERROR:     + CategoryInfo          : ParserError: (:) [], ParseException
ERROR:     + FullyQualifiedErrorId : UnexpectedToken
ERROR:

 

Hallo Nils, alte Herren ????? Du bezeichnest Dich als alter Herr ? Wenn Du möchtest bzw. willst, nenne mal Dein Alter. Dann kann ich was dazu sagen.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...