txt. Datei in xml datei konvertieren

G

guest--asking

Gast
Hallo alle zusammen,
Ich möchte eine txt-Datei mit java auslesen welche in .net serialisierte objekte bzw. objektstrukturen beinhaltet. Weiß einer ob es für java eine solche Bibliothek gibt oder wie ich das sonst machen könnte???
Danke im Voraus an alle!!!
 

XHelp

Top Contributor
Ich weiß weder was es mit txt noch mit xml zu tun hat. Ich denke das wird nicht so ganz klappen. Allein schon weil die Objekte aus .net in Java nicht existieren... Du könntest dir aber schon die Struktur angucken, eine Parser schreiben, der die Werte rausließt und dann in analoge Java-Objekte setzen.
Aber wäre es nicht einfacher, wenn du gleich nur die wichtigsten Werte aus .net in text Form speicherst?
 
G

guest--asking

Gast
Gut, dann frage ich mal anders, ich habe eine textdatei in der sichtbare Objektstrukturen enthalten sind und möchte diese auslesen, weiß aber nicht wie, ein Auszug:

(objectcontent) [
(objectcontent) {
obj = 'abc',
propSet = (properties) [
(properties) {
name = 'description',
val = (abcdescription) {
value = (elDescr) [
(elDescr) {
val1 = 'asd',
val2 = 'asd',
val3 = '1'
...
...

daraus soll <abc><properties><val1 = "asd"/><val2 ="asd"/><val3 = "1"/></properties></abc> oder sowas in der Art
 

XHelp

Top Contributor
Dazu müsstest du einen Parser schreiben. Durch die Klammersetzung sind ja die Bereiche eindeutig abgetrennt, so dass du weißt wo du dich befindest.
 
G

guest--asking

Gast
hättest du vielleicht einen Ansatz für mich oder ein Code-Beispiel, steh total auf dem Schlauch...
 

XHelp

Top Contributor
Du gehst die Datei durch, wenn du "(objectcontent) [" findest, dann suchst du nach "obj = " links davon steht dann der Name usw.
 
G

guest--asking

Gast
Erstmal danke,
Ich habe alles mögliche probiert aber mein problem ist das ich mehrer zeilen habe beispielsweise:

objekt a(
-------variable b = 1
-------variable d = 2
........
objekt b(
-------variable a = 3
-------variable d = 4

wie kriege ich das ausgelesen damit es auch jedem objekt zugeordnet werden kann, kannst mir jemand ein java-code beispiel geben,danke im voraus
 

XHelp

Top Contributor
Du könntest ja die Bereiche abtrennen.
wenn du "objekt" triffst, dann steht weiter der Name und eine Klammer.
Dann setzt du
Code:
int brackets
auf 1 du gehst weiter im text. Bei jedem
Code:
(
erhöhst du die Anzahl um 1, bei jedem
Code:
)
machst du -1. Sobald du bei 0 angekommen ist. ist das Objekt zu Ende. Du hast also die Anfangsposition und die Endposition.
 
G

guest--asking

Gast
Hey das mit den brackets ist ne verdammt gute Idee, danke dafür erstmal. Also ich steh total auf dem Schlauch
Kannst du mir nicht in Java-Code zeigen wie ich bei z.b. value a = '3' in der datei, es der es dem objekt x in java zuweisen kann, also s.setA(..)....
 

XHelp

Top Contributor
Wenn du immer die gleichen Objekte einliest, dann kannst du auch IFs verwenden (sofern es nicht 1000 Variablen sind). Ansonsten sieht es verdächtig nach Reflection aus:
Java:
public class SomeClass {
	private int a = 20;

	public void setA(int a) {
		this.a = a;
	}

	public SomeClass(String s) {
		System.out.println("Alter Wert: " + a);
		String[] line = s.split("=");
		try {
			//hier suchst du die "setA" Methode, die int als Parameter erwartet
			Method setter = this.getClass().getDeclaredMethod(
					"set" + line[0].toUpperCase(), new Class[] { int.class });
			//hier führst du die aus, und übergibst ihr die gewünschte Zahl
			setter.invoke(this, new Object[] { Integer.parseInt(line[1]) });
		} catch (Exception e) {
			e.printStackTrace();
		}
		System.out.println("Neuer Wert: " + a);
	}

	public static void main(String[] args) {
		SomeClass someObject = new SomeClass("a=123");
	}
}
Die Exception habe ich nur übersichtshalber zusammengefasst. Vllt hilft es dir ja weiter.
(Du musst aber dabei auf Groß- und Kleinschreibung achten, und ob die Methode überhaupt existiert und und und, also ist das ganze jetzt nicht die trivialste Aufgabe)
 
Zuletzt bearbeitet:
G

guest--asking

Gast
Vielen vielen Dank.
Aber ich glaube das kriege ich niemals hin, denn die Datei die ausgelesen werden muss hat ca 86000 Zeilen mit tausenden von verschachtelten Objekten und ihren properties die selbst wieder eigene verschachtelte properties haben und und und .... :-(
 

XHelp

Top Contributor
Im Endeffekt musst du nur einen Parser basteln, der das lesen kann. Rekursion wäre da auch ein gutes Stichwort.
Ob er anschließend 2 Objekte oder 2000 Objekte einlesen soll, ist völlig egal (sofern er so funktioniert, wie er funktionieren soll).
Aber um nochmal die Frage aus dem 1. Post aufzugreifen: kannst du nicht einfach bereits aus .net in passender Form die Daten bekommen?
 
G

guest--asking

Gast
Gäbe es vielleicht die möglichkeit mit Ihnen zu chatten(icq oder so) da kann ich mein Problem etwas schneller erklären warum ich es für unlösbar halte?
 
G

guest--asking

Gast
Java:
(ObjectContent) [
   (ObjectContent) {
      dynamicProperty = (DynamicProperty) [],
      obj = 'objektA',
      propSet = (DynamicProperty) [
         (DynamicProperty) {
            name = 'description',
            val = (Description) {
               dynamicProperty = (DynamicProperty) [],
               privilege = (ElementDescription) [
                  (ElementDescription) {
                     label = 'abc',
                     summary = 'def',
                     key = 'ghi'
                  }
				]
			}
		}
	}
]

Das ist ein Auszug, wie soll ich das also mit oben genannter Methode parsen?
 

Wildcard

Top Contributor
Ich schätze mal [] steht für ein Array und { } für ein einzelnes Objekt?
Grammatik in Xtext schreiben, daraus den Parser und ein EMF Modell generieren.
Die Text Datei mit dem generierten Code laden, das Root Element in eine EMF XMLResource stecken

Da das ganze nur eine simple Grammatik und 5 Zeilen Java Code erfordert habe ich es implementiert.

Grammatik:
Code:
grammar org.javaforum.sample.SampleDsl with org.eclipse.xtext.common.Terminals

generate sampleDsl "http://www.javaforum.org/sample/SampleDsl"

Model:
	objects+=AbstractObject*;

AbstractObject:
	Object | Array;

Object:
	'(' name=ID ')' '{' contents += Property (',' contents+=Property )* '}';
	  
Array:
	'(' name=ID ')' '['contents += AbstractObject (',' contents+=AbstractObject)* ']' ;
	
Property:
	name=ID '=' value=Value;
	
Value:
	AbstractObject | StringValue;
	
StringValue:
	value=STRING;

Code zum Umwandeln in XML:
Java:
	public static void main(String[] args) throws IOException {
		Injector injector = new SampleDslStandaloneSetup().createInjectorAndDoEMFRegistration();
		XtextResourceSet resourceSet = injector.getInstance(XtextResourceSet.class);
		Resource resource = resourceSet.getResource(URI.createFileURI("src/org/javaforum/sample/sample.txt"), true);
		EList<EObject> contents = resource.getContents();
		XMLResource out = new XMLResourceImpl();
		out.getContents().addAll(contents);
		out.save(System.out, null);

	}
Du bekommst übrigens auch gleich einen Eclipse Editor mit Syntax Highlighting, Outline, Autocompletion, Live Validierung,... generiert, aber das wirst du wohl gar nicht brauchen...

Xtext
 
G

guest--asking

Gast
Hey vielen Dank, das kannte ich gar nicht, aber ein problem hab ich noch: ich bekomme immer ein Fehlermeldung dass ich eine resource factory registrieren soll
 
G

guest--asking

Gast
Hat sich erledigt ich habs!!!,DANKE,DANKE,DANKE!!!
Gibt es auch eine Möglichkeit, dass Dinge die nicht in der Sprache definiert wurden vom Parser ignoriert werden. Letze Frage noch sorry dann ist das Thema durch!!!!
 
G

guest--asking

Gast
Ich krieg das mit der Resource Factory registration nicht hin, hab folgendes:
Resource.Factory.Registry.INSTANCE.getProtocolToFactoryMap().put("*", ??);
Weiter weiß ich nicht, ist ziemlich kompliziert das ganze Xtext.
 

Wildcard

Top Contributor
Ich hab dir doch Beispielcode gegeben.
Java:
new YourLanguageNameStandaloneSetup().createInjectorAndDoEMFRegistration();
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Tags in XML Datei mit Java erstellen XML & JSON 3
S XML Datei speichern nicht möglich XML & JSON 13
M Objekt zu jsonArray in .json datei hinzufügen ? XML & JSON 3
J Object in JSON Datei einlesen und als neues Object erzeugen (in ein Object Array) XML & JSON 29
I Mit Hibernate eine XML-Datei in eine Tabellenspalte einlesen. XML & JSON 1
MiMa Buch Metadaten aus XML Datei parsen XML & JSON 48
J Auslesen der Länge einer XML-Datei in Android Studio XML & JSON 8
R xlsx-Datei mit Apache POI einlesen XML & JSON 18
S Validierung einer XML-Datei - Führende Leerzeichen und Tabs XML & JSON 10
S CSV Datei einlesen und XML Ausgeben XML & JSON 2
U jar Datei mit ant erstellen XML & JSON 1
P wie kriege ich eine *.dtd Datei mit in die ausführbare *.jar? XML & JSON 2
K XML Datei erstellen und Daten daraus in Java auslesen XML & JSON 6
D XML-Datei per Button erstellen XML & JSON 3
K JAR-File mit XML-Datei XML & JSON 1
M Text eines Elements in XML Datei mit JAVA bearbeiten und kompletten Element-Zweig hinzufügen XML & JSON 16
I Liste in YAML Datei speichern und wieder auslesen XML & JSON 1
A Leeres Array beim Auslesen von XML-Datei XML & JSON 4
E JTreedaten in eine XML Datei speichern XML & JSON 3
D Int-Werte in XML-Datei schreiben (DOM) XML & JSON 2
B xsd-Datei ins jar file XML & JSON 5
T Formulardaten in XML Datei speichern XML & JSON 5
H Wsdl datei XML & JSON 2
D Große XML-Datei in einzel Dateien splitten XML & JSON 3
S Neue Inhalte in XML-Datei einfügen XML & JSON 0
S JDOM XML Datei darstellen Fehler! XML & JSON 2
S Xml File für den Aufbau einer anderen Xml Datei XML & JSON 6
M XML-Datei mit JAXB und 2 Namespaces XML & JSON 0
J XML - Datei wird nicht ganz angezeigt XML & JSON 2
P (Eclipse)Ant Script, .jar Datei erstellen mit MANIFEST.MF XML & JSON 12
Z XML Datei mit JDOM einlesen und verarbeiten XML & JSON 6
K Beim Parsen einer XML-Datei Connection timed out XML & JSON 4
E ResultSet als XML Datei speichern XML & JSON 7
M XStream, CSV Datei XML & JSON 9
A Frage zu bestehender XML Datei XML & JSON 6
A Simple Constructor Injection Datei-Pfad XML & JSON 6
K Einlesen eines Parameters aus HTML-Datei XML & JSON 4
Maxim6394 Lesen/Schreiben von XML Datei XML & JSON 9
A XML datei lesbar speichern (eingerückt) XML & JSON 7
M XML Datei Parsen XML & JSON 4
Airwolf89 HTML Datei mit SAXBuilder laden hängt sich auf XML & JSON 4
N Java Code aus XML Datei generieren XML & JSON 8
D Aus lesen einer XML-Datei ( 1 root, 3 childs) XML & JSON 7
D Wie XML Datei einlesen und HTML entities übernehmen? XML & JSON 3
R XLM Datei lesen Ändern (kompliziertes Search and Replace) und Speichern XML & JSON 12
K Kurze XML Datei Parsen XML & JSON 5
S XSD-Datei zulässige Werte auslesen XML & JSON 3
M XML Datei heapspace erreicht XML & JSON 3
M Große Datei auslesen/in dieser suchen XML & JSON 2
S Konforme XML Datei über XSD erstellen XML & JSON 2
M RSS-Datei auslesen von Yahoo Webservice XML & JSON 4
T Inhalt einer .xml Datei auf Javaoberfläche wiedergeben XML & JSON 4
M XML Datei drucken XML & JSON 8
T Daten aus Programm in XML Datei speichern XML & JSON 2
D XSD Datei erstellen XML & JSON 4
L [SAX] Geschachtelte XML Datei parsen XML & JSON 3
E XML Datei mit DOM auslesen (Text mit Attributen) XML & JSON 2
K XML Datei in ein Java package „einbinden" XML & JSON 3
L Reihenfolge beim xml Datei parsen einhalten? XML & JSON 8
L xml Datei parsen ohne End-Tag XML & JSON 6
C if-Abfrage mit Datei Variable aus XML-Datei XML & JSON 2
sylo Beim Erzeugen einer XML Datei auch die XML Struktur erzeugen? XML & JSON 11
sylo DOM Document in XML Datei schreiben XML & JSON 5
F XML Datei in Java einlesen XML & JSON 4
J Objektstruktur aus XML-Datei erzeugen XML & JSON 21
D ID's aus XML Datei rauslesen und in Java ausgeben XML & JSON 7
E XML Datei einlesen und Elemente in der Console ausgeben XML & JSON 6
N value Wert einer XML Datei mit JAVA bearbeiten XML & JSON 21
ARadauer Aus XML Datei Objekte erstellen... XML & JSON 3
N MalformedByteSequenceException bei Lesen aus XML Datei XML & JSON 2
H xml-Datei mit Attributen einlesen XML & JSON 3
A XML-Datei: Ab wann kritische Größe erreicht? XML & JSON 4
multiholle XML Datei elegant verarbeiten XML & JSON 14
M XMI-Datei auslesen XML & JSON 4
T Ließt keine XML Datei XML & JSON 2
R JAXB: Aus einem Vector oder List XML Datei erstellen XML & JSON 1
J XML-Datei ein Array einlesen XML & JSON 10
M xml - datei erstellen XML & JSON 2
T Wie einen String(XML Inhalt) in eine XML Datei speichern? XML & JSON 8
P Große XML Datei mittels JDOM bearbeiten / einlesen XML & JSON 6
H XML-Datei in einzelne XML-Dateien zerlegen XML & JSON 2
G Tags oder Zeilen der Not-Validen XML-Datei XML & JSON 7
C Suche in XML-Datei XML & JSON 6
D Zeilennummer in der XML - Datei XML & JSON 5
S Einlesen einer xml Datei XML & JSON 4
M Datei parsen XML & JSON 5
S PDF Erzeugung - Probleme mit der XML Datei bei Schema-Infos XML & JSON 2
S XML Datei einlesen, aber root überspringen XML & JSON 2
T Werte in XML Datei an entsprechender Stelle einfügen XML & JSON 3
Saxony unbekannte XML Datei parsen und ausgeben XML & JSON 10
L XML Datei in Java angeben Pfad? XML & JSON 3
A Mehrere Anwender sollen auf eine XML-Datei zugreifen XML & JSON 4
A SVG Datei auslesen und Batik XML & JSON 1
N neue XML-Datei erstellen mit vorhandener Struktur XML & JSON 18
D XML Datei innerhalb einer JAR Datei parsen XML & JSON 2
M brauche große XML-Datei für XPath-Tests XML & JSON 4
L mit Java eine HTML-Datei erstellen XML & JSON 3
L bz2-Datei parsen XML & JSON 9
A xml-schema aus wsdl auslagern in eine eigene xsd-Datei XML & JSON 3
S objekte in xml datei packen (JAXB) XML & JSON 5

Ähnliche Java Themen

Neue Themen


Oben