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

Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » XML-Datei parsen » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 3 Beiträge
deppensido

danke, das hat mir sehr weitergeholfen.
eulerscheZahl

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.
deppensido XML-Datei parsen

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)