Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

OSAX dem Projekt hinzufügen

 
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Studio Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
sideshow
•-->
•-->


Anmeldedatum: 07.05.2002
Beiträge: 130

BeitragVerfasst am: 15.01.2008 - 15:25    Titel: OSAX dem Projekt hinzufügen Antworten mit Zitat

Hallo Forum,

ich bin mit meiner Applikation jetzt schon recht weit. Nun stehe ich vor dem Problem, das ich eine XML Datei parsen will. Zu diesem Thema habe ich eine (wie mir scheint) recht gute OSAX gefunden:

http://www.latenightsw.com/freeware/XMLTools2/

Lade ich das .dmg herunter findet sich eine Datei "XML Tools.osax" darin. Meine Frage ist nun: kann man diese der Applikation hinzufügen damit meinem Programm zugänglich machen, oder müssen OSAX generell erst auf der Maschine "installiert" werden? Da mein Programm ja nicht nur auf meinem Rechner laufen soll sonder z.B. noch auf einem anderen Rechner. Wenn ich dann zuerst auf diesem Rechner die OSAX installieren muss ist das blöd! Neutral

Vielen Dank im Voraus für Infos aller Art!

Viele Grüße,
sideshow
_________________
Meine Wenigkeit im Internet: http://www.sideshow-systems.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 15.01.2008 - 15:43    Titel: Re: OSAX dem Projekt hinzufügen Antworten mit Zitat

Da ich keine OSAXen, aus genau dem Grund, daß ic nicht weiß, ob sie auf dem Zielsystem vorhanden ist, verwende, kann ich dir keine fundierte Antwort geben, sondern nur gut(?) raten.

Wenn ich ein Programm Bundle erstellen lasse, in meinem Fall nicht mit AppleScript Studio sondern mit dem ScriptEditor, dann kann ich anschließend in das Paket hinein andere Dateien legen.

Dazu gehe ich über das Finder-Kontextmenü des Programm Bundles -> Paketinhalt zeigen.

Dort gibt es dann Contents/Resources/. In diesem Verzeichnis kann man sich alles benötigte ablegen.

Den Pfad dorthin liefert:
path to resource "resourcename"

Also um z.B. den Pfad zum Scripts Verzeichnis zu erhalten verwende ich
path to resource "Scripts"
_________________
"All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies")
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
sideshow
•-->
•-->


Anmeldedatum: 07.05.2002
Beiträge: 130

BeitragVerfasst am: 15.01.2008 - 15:54    Titel: Antworten mit Zitat

So habe ich mir das auch gedacht. Da das aber meine momentanen Kenntnisse bei weitem übersteigt ziehe ich lieber eine andere Lösung des Problems vor.

Habe gerade entdeckt das man mit System Events auch XML Dateien parsen kann. Ich glaube das reicht für meine Bedürfnisse. Werde das mit der OSAX inkludieren mal irgendwann testen!

Danke trotzdem! Smile
_________________
Meine Wenigkeit im Internet: http://www.sideshow-systems.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 15.01.2008 - 16:04    Titel: Antworten mit Zitat

Ich sag Dir gleich: XML Parsen mit AppleScript ist kein Vergnügen!

Wie sehen denn Deine XML Dateien aus? Was mußt Du beim Parsen (denn damit wird es ja nicht getan sein) mit denen machen?

Eventuell würde ich sonst nämlich raten:
1. saxon (Java) einbinden
2. XSLT Datei dazu
3. per "do shell script" aufrufen
4. ERgebnis entgegennehmen
_________________
"All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies")
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
sideshow
•-->
•-->


Anmeldedatum: 07.05.2002
Beiträge: 130

BeitragVerfasst am: 15.01.2008 - 16:29    Titel: Antworten mit Zitat

Skeeve hat Folgendes geschrieben:
Ich sag Dir gleich: XML Parsen mit AppleScript ist kein Vergnügen!


Meine Fresse - das stimmt! Exclamation
Das nervt gewaltig. Und irgendwie komme ich auf kein Ergebnis. Habe zwar ein super Beispiel gefunden das auch gut funktioniert, kann es aber leider nicht auf meine Bedürfnisse umstricken. Hier die Seite:
http://mac.delta-c.de/node/974

Skeeve hat Folgendes geschrieben:

Wie sehen denn Deine XML Dateien aus? Was mußt Du beim Parsen (denn damit wird es ja nicht getan sein) mit denen machen?


Die XML Datei ist eigentlich total popelig - sieht so aus:
Code:

<?xml version="1.0" standalone="yes">
<artikel>
  <info>
    <id>123456789</id>
    <kw>200803</kw>
    <ausgabe>wsp</ausgabe>
    <headline>Die Überschrift des Artikels</headline>
    <stadtteil>Pasing</stadtteil>
    <typ>1</typ>
  </info>

...
</artikel>


Hier möchte ich dann eigentlich nur id, kw, ausgabe, headline, etc... aus dem XML rausziehen und in eine AS Variable speichern.

Wenn ich versuche das Beispielscript irgendwie umzubauen:
Code:

set xmlfile to XML file theFile
set info_block to XML element "info" of XML element "artikel" of contents of xmlfile


Erhalte ich leider nur Fehler:
System events got an error: Can't get XML element "artikel" of XML file ... url ...


Skeeve hat Folgendes geschrieben:

Eventuell würde ich sonst nämlich raten:
1. saxon (Java) einbinden
2. XSLT Datei dazu
3. per "do shell script" aufrufen
4. ERgebnis entgegennehmen


Arrow Question Mehr als das kann ich leider nicht dazu sagen! Wink
_________________
Meine Wenigkeit im Internet: http://www.sideshow-systems.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 15.01.2008 - 17:37    Titel: Antworten mit Zitat

Kommen diese Elemente öfter vor, oder nur einmal? Vielleicht reicht ja auch schon ein kleines Perl Script.
_________________
"All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies")
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 15.01.2008 - 17:48    Titel: Antworten mit Zitat

Hab es gerade mal ausprobiert.

SOOO kompliziert ist dieser Fall doch nicht:

Zitat:
tell application "System Events"
   set datei to XML file "/Users/skeeve/Desktop/X-Ampel.xml"
   tell contents of datei
      tell XML element "artikel"
         tell XML element "info"
            set headline to value of XML element "headline"
         end tell
      end tell
   end tell
end tell


P.S. Beachte aber, daß Deine XML Datei nicht zu parsen ist, weil die erste Zeile einen Fehler enthält!
_________________
"All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies")
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
sideshow
•-->
•-->


Anmeldedatum: 07.05.2002
Beiträge: 130

BeitragVerfasst am: 15.01.2008 - 17:54    Titel: Antworten mit Zitat

Das mit der ersten Zeile dachte ich mir schon - war mir aber nicht ganz sicher... mh... Danke dir auf jeden Fall. Ich werde das mal ausprobieren.

Die Element kommen zum Glück nur einmal vor - deswegen habe ich mir gedacht man könnte das auch mittels Shell-Kommando machen. Habe ich jetzt in der Form:

Code:

egrep "^<id>.*<\/id>$" /pfad/zur/xml/datei/200803/texte/123456789.rxt |sed 's/<.id>//g' |sed 's/<id>//g'


So würde ich jetzt die ID bekommen. Man, ist das alles kompliziert... muss ich mir morgen noch mal in Ruhe anschauen. Heute ist mein Kopf zu voll.
Erst mal den Live-Ticker zur Keynote anschauen! Smile

Vielen Dank und schönen Gruß,
sideshow
_________________
Meine Wenigkeit im Internet: http://www.sideshow-systems.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 15.01.2008 - 18:03    Titel: Antworten mit Zitat

sideshow hat Folgendes geschrieben:
deswegen habe ich mir gedacht man könnte das auch mittels Shell-Kommando machen.

Kann man, aber man sollte es nicht so einfach angehen, wie Du es getan hast. Das schlägt nämlich dann schon fehl, wenn in dem Text ein Zeilenumbruch vorkommt oder wenn z.B. einer in einem der Elemente erscheint. Außerdem mußt Du auf die Art die Datei für jedes Element erneut grep-en.
_________________
"All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies")
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
sideshow
•-->
•-->


Anmeldedatum: 07.05.2002
Beiträge: 130

BeitragVerfasst am: 16.01.2008 - 09:49    Titel: Antworten mit Zitat

Skeeve hat Folgendes geschrieben:
sideshow hat Folgendes geschrieben:
deswegen habe ich mir gedacht man könnte das auch mittels Shell-Kommando machen.

Kann man, aber man sollte es nicht so einfach angehen, wie Du es getan hast. Das schlägt nämlich dann schon fehl, wenn in dem Text ein Zeilenumbruch vorkommt oder wenn z.B. einer in einem der Elemente erscheint. Außerdem mußt Du auf die Art die Datei für jedes Element erneut grep-en.


Ja, da hast du recht - man muss für jedes "tag" die Datei neu greppen. Das Problem mit den Zeilenumbrüchen habe ich nicht, aber du hast trotzdem recht! Smile
Ich werde mir aber mal die XML Variante von dir anschauen - sieht sehr interessant aus - und wirklich nicht so schwer! Smile
_________________
Meine Wenigkeit im Internet: http://www.sideshow-systems.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Heiner
•-->
•-->


Anmeldedatum: 03.12.2005
Beiträge: 62
Wohnort: Moers

BeitragVerfasst am: 20.01.2008 - 17:52    Titel: Antworten mit Zitat

Hallo,

ich habe bei Matt Neuburg, Applescript unter 'Loading Scripting Additions' folgendes gefunden:
"Save your script as an Application bundle; then open the bundle with Show Package Contents and create Contents/Resources/Scripting Additions, and copy any needed osaxen into this folder."
(Ist ja schon von euch erwähnt worden. Und weiter:)
"There is also a trick that allows your script to force osaxen to be loaded again, while the script is running. Here it is:
Code:
try
tell me to << event ascrgdut>>
end try

This raw Apple event, for which there is no equivalent English-like terminology, tells the current AppleScript scripting component instance to refresh its knowledge of scripting additions. It's enclosed in a try block because it will probably generate an error, but the error is spurious; the command works, and any oaxen that were installed since scripting components was instantiated will be loaded."

Vielleicht ist dieser Artikel eine Hilfe für euch.

Heiner
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Studio Forum Alle Zeiten sind GMT + 2 Stunden
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2002 phpBB Group
Deutsche Übersetzung von phpBB.de


AppleScript für absolute Starter