Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  TM - Plant Simulation
  XML import (Methode vs. XML-Schnittstelle)

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  XML import (Methode vs. XML-Schnittstelle) (2720 mal gelesen)
netronic
Mitglied
Student

Sehen Sie sich das Profil von netronic an!   Senden Sie eine Private Message an netronic  Schreiben Sie einen Gästebucheintrag für netronic

Beiträge: 6
Registriert: 20.05.2008

erstellt am: 20. Mai. 2008 14:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

Ich möchte Daten (bspw. Stücklisten) im XML-Format importieren und damit Die Quelle (Verteilung von Fördergüter) oder Einzelstationen (Bearbeitungszeit, Rüstzeit etc.) beeinflussen .
Dafür gibt es ja eigentlich die XML-Schnittstelle, allerdings finde ich diese nicht einfacher als ein kurze Methode zu schreiben, die die XML-Datei in eine Tabelle importiert...

    Tabelle.leseXMLDatei("C:\Dokumente und Einstellungen\CAD-Forum\Desktop\test.xml"); 

... und anschließend mittels dieser Tabelle Quelle oder Einzelstationen zu beeinflussen.

Meine konkrete Frage: Sehe ich den Import von XML-Daten zu einfach und übersehe da massiv was, oder gibt es wirklich nur wegen einer Methode von einer Zeile eine eigene Klasse??? 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

LaBonita
Mitglied
Dipl.-Math.


Sehen Sie sich das Profil von LaBonita an!   Senden Sie eine Private Message an LaBonita  Schreiben Sie einen Gästebucheintrag für LaBonita

Beiträge: 151
Registriert: 26.07.2007

eM-Plant 7.5 bis 8.1
VB
Java
C#

erstellt am: 20. Mai. 2008 14:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für netronic 10 Unities + Antwort hilfreich

Hallo netronic,

zunächst mal in herzliches Willkommen hier im Forum.

Die grundlegende Frage, die sich im Rahmen Diener Anfrage sicherlich stellt, ist: Was ist besser: XML oder Textimport?
Das läßt sich pauschal nicht beantworten. Bei fest vorgegebenen Eingabedaten ist sicherlich der Textimport in eine Tabelle zu bevorzugen, da mit absoluten Bezügen gearbeitet werden kann. Wenn die Daten allerdings keine feste Struktur, dafür aber festgelegte Tags haben, ist der XML Import zu bevorzugen, da der Zugriff auf die einzelnen Elemente da einfacher zu programmieren ist.

Zusammengefasst und auf Deine Frage projeziert: XML bietet Möglichkeiten, wenn aus einer großen Menge mit unbestimmter Wiederholzahl bestimmte Elemente gewählt werden sollen. Jedoch ist es nicht das Allheilmittel und sicherlich gibt ees die Klasse nicht nur wegen einer einzigen Methode!!!

Gruß,
Ortrun

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Homer Simpson
Mitglied



Sehen Sie sich das Profil von Homer Simpson an!   Senden Sie eine Private Message an Homer Simpson  Schreiben Sie einen Gästebucheintrag für Homer Simpson

Beiträge: 345
Registriert: 14.09.2005

erstellt am: 20. Mai. 2008 14:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für netronic 10 Unities + Antwort hilfreich

Aus genau diesem Grund gibt es die Methode 'leseXMLDatei' bei der Tabelle: weil es so schön einfach ist.

Leider ist diese Methode nicht immer nutzbar. XML-Daten in eine Tabelle zu laden, benötigt vergleichsweise viel Speicherplatz. Du kannst ja mal versuchen eine 50 MB große XML-Datei zu importieren, dann wirst du sehen was ich meine...
Oft möchte man auch nur bestimmte Informationen aus der XML-Datei herauslesen. Dafür gibt es die Möglichkeit via XPath mit Hilfe des XML-Objekts gezielt auf die XML-Daten zuzugreifen.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Homer Simpson
Mitglied



Sehen Sie sich das Profil von Homer Simpson an!   Senden Sie eine Private Message an Homer Simpson  Schreiben Sie einen Gästebucheintrag für Homer Simpson

Beiträge: 345
Registriert: 14.09.2005

erstellt am: 20. Mai. 2008 14:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für netronic 10 Unities + Antwort hilfreich

@LaBonita: Wieso Textimport? netronic macht doch einen XML-Import in die Tabelle.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

LaBonita
Mitglied
Dipl.-Math.


Sehen Sie sich das Profil von LaBonita an!   Senden Sie eine Private Message an LaBonita  Schreiben Sie einen Gästebucheintrag für LaBonita

Beiträge: 151
Registriert: 26.07.2007

eM-Plant 7.5 bis 8.1
VB
Java
C#

erstellt am: 20. Mai. 2008 15:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für netronic 10 Unities + Antwort hilfreich

@Homer Simpson: Hab ich wohl nicht exakt gelesen, aber im Prinziop ändert das an meiner Antwort nichts: XML, wenn flexible Daten mit Tags gelesen werden - ABER: wenn Daten in einer festen unveränderlichen Struktur vorlegen: dann reicht ien Textimport und ich brauche eigentlich gar kein XML.

Und zuletzt: XML und Tabelle: Irgendwie muss ich mich halt durcharbeiten - entweder durch die Tags oder über die Tags durch die Tabellenzellen.

Gruß,
Ortrun

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

netronic
Mitglied
Student

Sehen Sie sich das Profil von netronic an!   Senden Sie eine Private Message an netronic  Schreiben Sie einen Gästebucheintrag für netronic

Beiträge: 6
Registriert: 20.05.2008

erstellt am: 20. Mai. 2008 15:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Zitat:
Original erstellt von Homer Simpson:
Aus genau diesem Grund gibt es die Methode 'leseXMLDatei' bei der Tabelle: weil es so schön einfach ist.

Leider ist diese Methode nicht immer nutzbar. XML-Daten in eine Tabelle zu laden, benötigt vergleichsweise viel Speicherplatz. Du kannst ja mal versuchen eine 50 MB große XML-Datei zu importieren, dann wirst du sehen was ich meine...



Mittels der XML-Schnittstelle ist es also möglich eine 50 MB große XML-Datei in eine Tabelle zu importieren? Oder kann man mittels der XML-Schnittstelle Quelle und Einzelstation direkt beeinflussen? Das wird mir aus der Plant-Simulation-Hilfe nicht wirklich klar...

Zitat:
Original erstellt von Homer Simpson:
Oft möchte man auch nur bestimmte Informationen aus der XML-Datei herauslesen. Dafür gibt es die Möglichkeit via XPath mit Hilfe des XML-Objekts gezielt auf die XML-Daten zuzugreifen.

An dieser Stelle wird es interessant. Ich stelle mir nämlich vor, eine XML Datei zu importieren und somit möglichst automatisiert die Quelle, Bearbeitungszeiten, Rüstzeiten etc. zu steuern. Ich nehme mal an, dass dies mittels der Import-Methode der XML-Schnittstelle funktioniert, die dann auf die jwlgn Knoten des XML-Dokuments zugreift...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

LaBonita
Mitglied
Dipl.-Math.


Sehen Sie sich das Profil von LaBonita an!   Senden Sie eine Private Message an LaBonita  Schreiben Sie einen Gästebucheintrag für LaBonita

Beiträge: 151
Registriert: 26.07.2007

eM-Plant 7.5 bis 8.1
VB
Java
C#

erstellt am: 20. Mai. 2008 16:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für netronic 10 Unities + Antwort hilfreich

Hallo netronic,

ganz so einfach ist das nicht. Die Logik ist zu programmieren. Jedoch kannst Du die Daten einlesen und dann anhand der Tags auf die einzelnen Stationen verteilen. Wenn Du also notwendige Infos in das XML Dokument auslagerst, kannst Du Automatismen erstellen, die nicht explizit programmiert werden müssen - z.b. Pfad des Elementes oder zumindest den eindeutigen Bezeichner.

Ich habe mit so etwas mal ein Modell von außen konfiguriert, d.h. die einzelnen Knoten mit Attributen (Bearbeitungsstationen mit Zeiten und Quellen mit Zuflussströmen) wurden im XML beschrieben und die Beziehungen (die Knaten dazwischen) auch und nach dem Einlesen wurde das Modell vollautomatisch aufgebaut und gestartet.

Deine Ideen sind also umsetzbar - Du musst es nur machen. Bei den Tags sind Bedingungen zu beachten: Das Tag auf der obersten Ebene muß Data heißen, sonst kriegt es die XML-Schnittstelle nicht aufgelöst. Allerdings können die Tags auf jeder Ebene darunter beliebige Bezeichnungen haben - das funktioniert dann.

Viel Spass beim Testen.

Gruß,
Ortrun

P.S.: Die PlantSimulation Hilfe ist an dieser Stelle nicht wirklich hilfreich!!! Testen und dann machen - hilft viel mehr...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Homer Simpson
Mitglied



Sehen Sie sich das Profil von Homer Simpson an!   Senden Sie eine Private Message an Homer Simpson  Schreiben Sie einen Gästebucheintrag für Homer Simpson

Beiträge: 345
Registriert: 14.09.2005

erstellt am: 20. Mai. 2008 20:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für netronic 10 Unities + Antwort hilfreich

Zitat:
Mittels der XML-Schnittstelle ist es also möglich eine 50 MB große XML-Datei in eine Tabelle zu importieren? Oder kann man mittels der XML-Schnittstelle Quelle und Einzelstation direkt beeinflussen?

Mit dem XML-Objekt ist es möglich, Daten aus der XML-Datei zu lesen ohne sie in eine Tabelle zu laden. Natürlich kann ich die Daten auch in eine Tabelle einlesen, aber dann brauche ich genauso viel Speicher wie vorher.

Mit dem XML-Objekt muss ich halt nicht die gesamte Datei auf einmal ein eine Tabelle laden. Ich kann gezielt bestimmte Informationen aus ser XML-Datei extrahieren.

Egal ob die Daten nun in eine Tabelle geladen oder via XML-Objekt gelesen werden, ganz so einfach bekommst du sie trotzdem nicht in die Einzelstationen (und Quellen usw.). Entweder musst du die Werte von Hand und zu Fuß per Methode an die Einzelstationen zuweisen, oder du musst einen Attribut-Explorer zuhilfe nehmen (was auch nicht ganz einfach ist). Alle Plant-Simulation-Objekte verstehen übrigens die Methode setAttribute. Damit kannst du Werte zuweisen, ohne für jedes Attribut eine eigene Zuweisung zu schreiben. Statt dessen kannst du die Werte in einer Schleife zuweisen, indem sowohl den Attributnamen als auch den Wert aus der XML-Datei liest und dann obj.setAttribute(Attributname, Wert) aufrufst.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

netronic
Mitglied
Student

Sehen Sie sich das Profil von netronic an!   Senden Sie eine Private Message an netronic  Schreiben Sie einen Gästebucheintrag für netronic

Beiträge: 6
Registriert: 20.05.2008

erstellt am: 21. Mai. 2008 12:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Zitat:
Original erstellt von LaBonita:
...Wenn Du also notwendige Infos in das XML Dokument auslagerst, kannst Du Automatismen erstellen, die nicht explizit programmiert werden müssen...

Ich habe mit so etwas mal ein Modell von außen konfiguriert, d.h. die einzelnen Knoten mit Attributen (Bearbeitungsstationen mit Zeiten und Quellen mit Zuflussströmen) wurden im XML beschrieben...und nach dem Einlesen wurde das Modell vollautomatisch aufgebaut und gestartet.



Ganz klar ist mir das ganze nicht, lass uns das mal anhand eines kleinen Beispiels nachvollziehen.
Angenommen die XML-Datei sieht so aus:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<Data>
  <Einzelstation Typ="Drehmaschine">1:23</Einzelstation>
<Einzelstation Typ="Fraesmaschine">2:34</Einzelstation>
</Data>

Frage 1: sieht die so schonmal ganz gut aus, dass man hieraus die Daten importieren könnte? Ich habs in eine Tabelle importiert, gefällt mir aber die Formatierung der Tabelle nicht so gut, dass man aus der Tabelle die Einzelstation steuern könnte.

Bei der Steuerung der Einzelstationen aus der Tabelle habe ich mir eine Methode vorgestellt, die dann wie folgt aussieht:

is
do Drehmaschine.bearbeitungszeit:=(Tabelle["Bearbeitungszeit","Drehmaschine"]);
Fraesmaschine.bearbeitungszeit:=(Tabelle["Bearbeitungszeit","Fraesmaschine"]);
end;

oder

is
i:integer;
element bject;
do
for i:=1 to Tabelle.Ydim loop
wert:=str_to_obj(Tabelle[2,i]);     
wert.bearbeitungszeit:=Tabelle[3,i];
wert.rüstzeit:=Tabelle[4,i];
next;
end;

Frage 2: Wie soll eine Logik aussehen, die die Daten einliest und dann anhand der Tags diese direkt auf die einzelnen Stationen verteilt?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

netronic
Mitglied
Student

Sehen Sie sich das Profil von netronic an!   Senden Sie eine Private Message an netronic  Schreiben Sie einen Gästebucheintrag für netronic

Beiträge: 6
Registriert: 20.05.2008

erstellt am: 27. Mai. 2008 12:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ich brauche nochmal dringend Hilfe. 
Zitat:
Jedoch kannst Du die Daten einlesen und dann anhand der Tags auf die einzelnen Stationen verteilen

Das macht der bei mir nicht. Wenn ich eine XML erstellt habe (Eltern-Tag heißt Data, die anderen beliebig und mit Attributen versehen) und ich eine mehtode tippe mit
XMLSchnittstelle.Dateiname := " ";
XMLSchnittstelle.öffneDokument;
print XMLSchnittstelle.holeKnotenNamen

zeigt der mir nix von den Knoten, kaum zu schweigen von Attributen, wenn ich mir auch diese anzeigen lassen möchte.
Plant Simulation will das einfach nicht "fressen".

Zitat:
Mit dem XML-Objekt ist es möglich, Daten aus der XML-Datei zu lesen ohne sie in eine Tabelle zu laden

Wie kann ich mit der XML-Schnittstelle direkt Maschinen von der XML-Datei ansprechen? Theoretisch müsste es doch mit einer Import-Methode und dann über setAttribut gehen, aber wie???

Für Antworten wäre ich dankbar

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz