Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » XML-Datei parsen » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen XML-Datei parsen
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
deppensido
Doppel-As


Dabei seit: 23.12.2012
Beiträge: 144

XML-Datei parsen Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

hallo,

die XML-Datei, um die es geht ist in dem angehängten Zip-Ordner.
Ich versuche daraus die Texte herauszulesen um diese in
einem Array speichern zu können. Ich versuche das momentan
mit R, weil ich die Texte später für eine Analyse brauche.
Es würde mir aber auch sehr viel weiter helfen, wenn man
es anhand einer anderen Programmiersprache, z.B. Java
erklären könnte. Das Problem besteht eigentlich darin, dass
ich irgendwie an die Knoten nicht drannkomme, die die
Texte enthalten. Soweit ich das bisher verstehe befinden sich
die Texte unter den Tags "text", "page", "balloon" und dort neben
den Tags "area" und "point" jeweils unter "<p>dies ist ein Text</p>.

area und die dazugehörigen points gehören zu "balloon" und da ist ganz
am Ende immer <p></p> worin jeweils der Text steht. Wie könnte ich
an diese rankommen? Bin für jede Hilfe dankbar.

Dateianhang:
zip beispiel.zip (3,21 KB, 375 mal heruntergeladen)
19.11.2015 00:15 deppensido ist offline Beiträge von deppensido suchen Nehmen Sie deppensido in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Für so etwas gibt es Bibiotheken, die sich je nach Sprache ziemlich unterscheiden können. Ich kann kein R, habe aber auch da eine Bibliothek gefunden.
Hier etwas C#, einmal mit und einmal ohne Bibliothek:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;

namespace XMLParser
{
	class MainClass
	{
		public static void Main (string[] args)
		{
			Console.WriteLine (string.Join ("\n", ParseLibrary ("beispiel.xml")));
		}

		public static string[] ParseManual(string filename) {
			List<string> texts = new List<string> ();
			string xml = File.ReadAllText (filename);
			while(xml.IndexOf("<balloon who=\"") > 0) {
				xml = xml.Substring (xml.IndexOf ("<balloon who=\"") + 14);
				texts.Add (xml.Substring (0, xml.IndexOf ("\"")));
				xml = xml.Substring (xml.IndexOf ("<p>") + 3);
				texts.Add ("    " + xml.Substring (0, xml.IndexOf ("</p>")));
			}
			return texts.ToArray ();
		}

		public static string[] ParseLibrary(string filename) {
			XElement root = XElement.Load (filename);
			List<string> entries = new List<string> ();
			ParseLibraryRecurs (root, entries);
			return entries.ToArray ();
		}

		private static void ParseLibraryRecurs(XElement node, List<string> list) {
			if (node.Name.LocalName == "balloon" && node.Attribute ("who") != null) {
				list.Add (node.Attribute ("who").Value);
			}
			if (node.Name.LocalName == "p") {
				list.Add ("    " + node.Value);
			}
			foreach (XElement elem in node.Elements()) {
				ParseLibraryRecurs (elem, list);
			}
		}
	}
}


Ausgabe:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
William Corrigan
    öchö öchö
William Corrigan
    Fotoalben, Sonntagsbraten, Familienausflüge... alles Blödsinn, wenn Du mich fragst
Phone
    Drring
William Corrigan
    öchö
Jimmy Corrigan
    M... Mom?
Phone
    Drring
Jimmy Corrigan
    H...Hallo?
Jimmy Corrigan
    Ach, g... ganz gut... u... und wie geht's Dir?
William Corrigan
    Obwohl... So ein Braten ist eigentlich gar nicht so übel. Ha Ha.	
Jimmys Mom
    Wir sind da, Jimmy. Hier wollen wir essen.


__________________
Syntax Highlighting fürs Board (Link)
19.11.2015 07:11 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
deppensido
Doppel-As


Dabei seit: 23.12.2012
Beiträge: 144

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

danke, das hat mir sehr weitergeholfen.
20.11.2015 18:48 deppensido ist offline Beiträge von deppensido suchen Nehmen Sie deppensido in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » XML-Datei parsen