Announcement

Collapse
No announcement yet.

XML Datei auslesen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • XML Datei auslesen

    ich möchte eine XML-Datei bzw. Teile daraus via SQL auslesen. Habe schon viel gesucht, nur noch keinen Lösungsansatz gefunden und hoffe auch eure Unterstützung.

    Der Aufbau der XML schaut wie folgt aus:

    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <status>
     
     
    <obj>
    <errorcode>0
    </errorcode>
    <description>
     
    Zeile 1
    Zeile 2
    Zeile 3
    [...]
     
    </description>
    <statusfile>C:\XMLTemp\Test.pdf
    </statusfile>
    <typ>21
    </typ>
    </obj>
    </status>

    Hat jemand von euch sowas ähnliches schon einmal gemacht und könnte mir einen Tipp geben?

    Für den Fall dass das so nicht geht, könnte ich mir auch noch den Weg über die PowerShell vorstellen. Habe versucht damit die XML-Datei auszulesen, weil das mein erster Ansatz war, jedoch komme ich damit nicht so recht weiter.

    Mein Powershell Script sie so aus:

    Code:
    $BodyText =""
    $BaseFile=[xml]( Get-Content C:\XMLTemp\test.xml.status )
    #$Att_File = new-object Net.Mail.Attachment($FaxDoc)
    $XMLPath = $BaseFile.SelectNodes("/faxmakerstatus/*")
    
    
    foreach ($element in $XMLPath) {
     $BodyText = $BodyText + " "+$element.description 
     #$FaxDoc = $FaxDoc + " "+$element.statusfile
    }
    
    
    
    #[System.Windows.Forms.MessageBox]::Show("$BodyText")
    
    $msg=new-Object Net.Mail.MailMessage
    $smtp=new-object Net.Mail.SmtpClient("192.168.100.100")
    $msg.From="[email protected]"
    $msg.To.Add("[email protected]")
    $msg.subject="Fax Statusbericht"
    $msg.body="$BodyText"
    #$msg.Attachments.Add($FaxDoc)
    $smtp.send($msg
    )

    Mein Problem bei diesem Script ist, dass ich an die einzelnen Zeilen nicht herankomme. Zum Beispiel steht in einer Zeile die Empänger E-Mailadresse usw. Immerhin habe ich es zumindest soweit geschafft das eine E-Mail an den fest hinterlegten Empfänger gesandt wird.

    Abgesehen davon dass ich die einzelnen Informationen bzw. Teile aus der XML nicht verwenden kann, habe ich noch das Problem dass das PDF-Dokument mit jedem ausführen des Scriptes immer weiter mit dem Pfad und dem Dateinamen rangehängt wird. Dass das nicht funktioniert, bleibt dabei natürlich nicht aus, nur bekomme ich das Fehlverhalten auch nicht in den Griff.


    Hoffe irgendjemand von euch kann mir helfen.

    Besten Dank schon einmal im Voraus!

    Viele Grüße
    Rene

  • #2
    Das, was du schreibst wird immer undurchsichtiger.

    Wie schon im anderen Thread gesagt, SQL und XML passen nicht. Was nun obiges Script damit zu tun hat, erschliesst sich nicht. Selbst wenn du nun auf die Zeilen zugreifen kannst, wie willst du in welcher Form ein SQLStatement darauf absetzen? Was hat nun das senden einer eMail damit zu tun? Was ein PDF?

    Kann es sein, dass hier etwas durcheinander laeuft
    Christian

    Comment


    • #3
      Hallo,
      Mein Problem bei diesem Script ist, dass ich an die einzelnen Zeilen nicht herankomme.
      Vielleicht passt die xml-Datei nicht zur Problemstellung... Eine weitere Unterteilung bei <description> *könnte* helfen. Ebenso XPath: http://www.tekom.de/upload/3383/OTS11_Meinike.pdf (Seite 21ff)
      MfG
      Cheat-Sheets for Developers / Programming Quotes

      Comment


      • #4
        @Christian

        Da im anderen Thread gesagt wurde dass das so nicht ganz passt, habe ich nach einem anderen Lösungsweg gesucht und bin dabei auf den Weg mit der Powershell gekommen. Es geht letztlich darum dass ich bestimmte Informationen aus dem XML-Dokument auswerten und in Abhängigkeit dessen eine E-Mail senden muss, dessen Empfänger ebenfalls im <description> steht. In dem XML-File ist auch ein PDF vermerkt, welches ich dann gern an die E-Mail angehängt hätte.

        @Markus
        Eine Unterteilung beim <description> würde das in Summe sicherlich vereinfachen, jedoch habe ich auf den Aufbau der XML-Datei keinen Einfluss. Auch wenn es nicht schön ist, so ist das meine Ausgangssituation. Das PDF-Dokument schaue ich mir nachher in Ruhe einmal an. Muss aber gestehen dass ich nur ganz wenig programmieren kann, sofern man es so überhaupt bezeichnen kann. Kleinere Scripte bekomme ich mir etwas Zeit schon hin, nur stoße ich dabei auch recht schnell an meine Grenzen.

        Comment


        • #5
          aus dem XML-Dokument auswerten und in Abhängigkeit dessen eine E-Mail senden muss
          Das ist nicht das, was du in 2 Threads hier gefragt hast. Du hast hier mehrfach danach gefragt, wie man SQL auf XML anwendet. In deinem Fall ist es sinnvoll, sich eine Programmiersprache (PERL, PHP, NET, JAVA, DELPHI) zu suchen, das XML damit zu parsen und eine Mail zu vesenden. Damit ist das ermitteln der Zeilen oder sonstigen Inhalts kein Problem.
          Das gefrickel mit der Shell bringt nichts
          Christian

          Comment


          • #6
            Ist es immer das gleiche Dokument und nicht ständigen Änderungen unterworfen, kannst du dir ggf. das richtige "parsen" (also sowas wie den Einsatz von SAX etc.) sparen und ganz stumpf das Ding als Text aufpassen und zufuß die interssanten Stellen herausholen und die verflixte e-mail absenden... sollte jetzt ja nicht die Herausforderung sein...

            Comment


            • #7
              Wenn es immer das gleich Dokument ist, braucht es es überhaupt nicht zu parsen, sondern codiert die eMail mit den festen Daten
              Christian

              Comment


              • #8
                Originally posted by Christian Marquardt View Post
                Wenn es immer das gleich Dokument ist, braucht es es überhaupt nicht zu parsen, sondern codiert die eMail mit den festen Daten
                Sieht doch so aus als ginge es um einen Sendebericht von "faxmaker" der Aufbau sollte ja nicht so kompliziert sein. Ist dann halt immer das gleiche (nicht selbe) Dokument... da suche ich halt die entsprechenden Abschnitte schnell 'zufuß' und gut ist - da es ja 'eigentlich' ein xml Dokument ist sollten die Abschnitte ja wohl leicht auch so zu finden sein... ich brauch ja keine wilden Werke veranstalten um herauszubekommen, was z.B. zwischen <statusfile> und </statusfile> steht ..

                oder sehe ich das falsch?

                Comment


                • #9
                  Mein Problem bei diesem Script ist, dass ich an die einzelnen Zeilen nicht herankomme. Zum Beispiel steht in einer Zeile die Empänger E-Mailadresse usw.
                  Ich kann dir nicht folgen. Willst du uns sagen das der Inhalt des description Elements nochmal einen inneren Aufbau hat der nicht durch das XML beschrieben ist?.

                  habe ich noch das Problem dass das PDF-Dokument mit jedem ausführen des Scriptes immer weiter mit dem Pfad und dem Dateinamen rangehängt wird. Dass das nicht funktioniert, bleibt dabei natürlich nicht aus, nur bekomme ich das Fehlverhalten auch nicht in den Griff.
                  Wieso definierst du nicht einfach deine MailMessage vor dem foreach und machst in dem foreach jeweils ein Attachments.Add($element.statusfile) ? Die zwischengeschaltete $FaxDoc Variable ist irgendwie überhaupt nicht hilfreich.

                  Comment

                  Working...
                  X