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: |
beispiel.zip (3,21 KB, 393 mal heruntergeladen)
|
|
|
|