Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 29-06-2011, 08:51   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2011
Beiträge: 5
KML, XML Document Writer

Guten Morgen zusammen,
ich wollte mich mal umhören ob jemand hier Erfahrung damit hat, selbst Klassen zu definieren, welche einen oder mehrere Datensätze (z.B. Aus einer Datanbank) zum XML oder KML Dokument verpackt. Quasi eine Klasse die den Export von Daten zu diesen Formate(n) gewährleistet.

Wenn ihr Weblinks postet wo ich genau das nachlesen wie man an sowas clever ran geht genügt mir das schon.

Natürlich hab ich mir auch schon Gedanken gemacht wie ich das lösen kann. Ich glaube allerdings das es vielleicht bessere Wege gibt. Ich würde mir alles mit Strings realisieren. Z.B.

PersonenInformationStream += writeVorName("Hans aus der Datenbank");

...

private function writeVorName(var vN:String):String
{
return "<Vorname>" + vN + "</Vorname>";
}
Am Ende hätte ich so ein Textfile mit dem ich die Endung .kml oder .xml vereinbare.

Habt ihr bessere Ideen? Oder gibt es Klassen die genau das leisten von denen ich nichts weiß?!?!?

Das Projekt wird mit dem Flash Builder 4.5 erstellt und um diese Klasse zu erstellen dachte ich natürlich an die Nutzung von Actionscript.

Lg, Dirty
DirtyMatze ist offline   Mit Zitat antworten
Alt 29-06-2011, 08:57   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.139
XML/KML kannst du bequem via XML Literal + Databinding erzeugen. Biete deinen Klassenen eine Function toXML():XML an und lasse es darüber laufen. Das ist die schnelle einfache Art. Und die Konkatenation Instanzen oder Generierung von komplexen Strukturen is a piece of cake.
Omega Psi ist offline   Mit Zitat antworten
Alt 29-06-2011, 09:02   #3 (permalink)
Neuer User
 
Registriert seit: Jun 2011
Beiträge: 5
Kannst du mal bitte Links posten wo ich Tutorials nachlesen kann wie das genau von statten geht?

Grüße
DirtyMatze ist offline   Mit Zitat antworten
Alt 29-06-2011, 09:08   #4 (permalink)
Neuer User
 
Registriert seit: Jun 2011
Beiträge: 5
Beim Googeln hab ich dies gefunden. Scheint zu taugen. Was meint ihr?


var request:XML = <smart_list/>;
request.sort.order = "highest";
request.sort.field = "Average Position";
request.max_results = 10;
request.toXMLString();

// "<smart_list><sort><order>highest</order><field>Average Position</field></sort><max_results>10</max_results></smart_list>"
DirtyMatze ist offline   Mit Zitat antworten
Alt 29-06-2011, 10:35   #5 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 548
Die beste Hilfe ist eigentlich die Referenz zum XML-Objekt: XML - ActionScript® 3.0 Reference for the Adobe® Flash® Platform
Dort findest du etliche Methoden, die dir beim dynamischen zusammensetzen einer XML helfen.

Hier mal ein Beispiel wenn mehrere gleichartige Sätze z.B. in einem Array vorliegen und die Daten z.T. als Attribute, z.T. optional als eigene Tags einfließen sollen:
ActionScript:
  1. var sourceData:Array=[];
  2. sourceData.push({name:"Hans", alter:"25", ort:"Wien", beschreibung:"Keine besonderen Merkmale."});
  3. sourceData.push({name:"Volker", alter:"42", ort:"München"});
  4.  
  5. var myXml:XML=<root/>;
  6. for(var i:int=0;i<sourceData.length;i++){
  7.     var current:XML=<person/>;
  8.     current.@name=sourceData[i].name;
  9.     current.@alter=sourceData[i].alter;
  10.     current.@ort=sourceData[i].ort;
  11.     if(sourceData[i].beschreibung)current.beschreibung=sourceData[i].beschreibung;
  12.     myXml.appendChild(current);
  13. }
  14.  
  15. trace(myXml);

-->
ActionScript:
  1. <root>
  2.   <person name="Hans" alter="25" ort="Wien">
  3.     <beschreibung>Keine besonderen Merkmale.</beschreibung>
  4.   </person>
  5.   <person name="Volker" alter="42" ort="München"/>
  6. </root>

Viele Variationen sind denkbar...

Geändert von joeydee (29-06-2011 um 10:38 Uhr)
joeydee ist offline   Mit Zitat antworten
Alt 30-06-2011, 07:19   #6 (permalink)
Neuer User
 
Registriert seit: Jun 2011
Beiträge: 5
Morgen, wenn ich mir von meiner Funktion den Output ansehe, wieso wird automatisch für jeden Node der in der for Schleife erzeugt wird ein Attribut erstellt?

Output für i=0: <max_results xmlns="xml_2">0</max_results>.
Ich möchte das daß Attribut "xmlns="xml_2"" nicht erstellt wird.

Weißt jemand wie?

Funktion:

var request:XML = <smart_list/>;
request.sort.order = "highest";
request.sort.field = "Average Position";

for(var i:int=0;i<10;i++)
{
//request.sort.max_results.appendChild(i);
request.sort.max_results[i] = i;
}


Gruß, Matze
DirtyMatze ist offline   Mit Zitat antworten
Alt 30-06-2011, 07:55   #7 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.139
Oder via Literalsyntax + Databinding
Code:
var rootElementName:String = "BOOK";
var rootAttributeName:String = "ISBN";
var childElementNames:Array = ["TITLE", "AUTHOR", "PUBLISHER"];
var bookISBN:String = "0141182806"; var bookTitle:String = "Ulysses";
var bookAuthor:String = "Joyce, James";
var bookPublisher:String = "Penguin Books Ltd";
var novel:XML = <{rootElementName} {rootAttributeName}={bookISBN}>
  <{childElementNames[0]}>{bookTitle}</{childElementNames[0]}>
  <{childElementNames[1]}>{bookAuthor}</{childElementNames[1]}>
  <{childElementNames[2]}>{bookPublisher}</{childElementNames[2]}>
</{rootElementName}>;
Omega Psi ist offline   Mit Zitat antworten
Alt 30-06-2011, 08:09   #8 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 548
Zitat:
Zitat von DirtyMatze Beitrag anzeigen
Morgen, wenn ich mir von meiner Funktion den Output ansehe, wieso wird automatisch für jeden Node der in der for Schleife erzeugt wird ein Attribut erstellt?

Output für i=0: <max_results xmlns="xml_2">0</max_results>.
Ich möchte das daß Attribut "xmlns="xml_2"" nicht erstellt wird.

Weißt jemand wie?

Funktion:

var request:XML = <smart_list/>;
request.sort.order = "highest";
request.sort.field = "Average Position";

for(var i:int=0;i<10;i++)
{
//request.sort.max_results.appendChild(i);
request.sort.max_results[i] = i;
}


Gruß, Matze
xmlns definiert einen XML-Namespace. Woher der bei dir kommen soll ist mir allerdings unklar. Hast du außerhalb dieses Codes noch irgendwas XML-mäßiges definiert?
Jedenfalls wenn ich deinen Code in ein leeres Projekt einfüge, kommt exakt was du haben willst.
joeydee ist offline   Mit Zitat antworten
Alt 30-06-2011, 09:37   #9 (permalink)
Neuer User
 
Registriert seit: Jun 2011
Beiträge: 5
Hallo, hier ist mal meine ganze Methode:

public function write_xml():void
{
var request:XML = <smart_list/>;
request.sort.order = "highest";
request.sort.field = "Average Position";

for(var i:int=0;i<1;i++)
{
request.sort.max_results[i] = i;
}

trace(request);
trace(request.toString());
trace(request.toXMLString());
}
Alle drei Outputs sind identsch:

<smart_list>
<sort>
<order>highest</order>
<field>Average Position</field>
<max_results xmlns="xml_2">0</max_results>

// hier soll das Attribut xmlns="xml_2" weg. xml_2 ist übrigends der
// Projektname

</sort>
</smart_list>


Sonst wird nichts gemacht. Idee?
DirtyMatze ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
actionscript, kml, xml

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Air Pdf writer Sir Freako Adobe AIR 6 26-04-2008 15:52
type writer in zeile für zeile ändern gorgeous ActionScript 1 10 26-08-2006 02:05
Unterschiede zwischen Acrobat Writer 5/6 ExarKun Am Rande 1 15-11-2003 17:52
PDF Writer für MacOs X gesucht edv26 Am Rande 4 06-08-2003 11:09
pdf document topolina ActionScript 1 3 23-01-2002 21:29


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:52 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele