"Selfmade" XML-Pasrer
-
TNA schrieb:
pop schrieb:
Hallo liebe Community!
Wie soll ich die Elemente(Elementtexte, Attribute) speichern?Als Liste? Stack? (Binär)Baum?
Wäre es nicht sinnvoll einen Baum zu nehmen, wie beim DOM?
std::vector<xml_element> content; da kommt doch der baum her, oder fehlt dir der parent

-
crispin kenton schrieb:
std::vector<xml_element> content; da kommt doch der baum her, oder fehlt dir der parent

Ok, ich glaube jetzt verstehe ich das. Aber warum ist ein Attribute ein xml_element?
-
TNA schrieb:
crispin kenton schrieb:
std::vector<xml_element> content; da kommt doch der baum her, oder fehlt dir der parent

Ok, ich glaube jetzt verstehe ich das. Aber warum ist ein Attribute ein xml_element?
Kpl. vllt. weil ein Attribut ein String sein kann und ein String ein xml_element. Am besten fragst mal den Mr. modul, der hat sich die Grütze schließlich ausgedacht

-
crispin kenton schrieb:
modul schrieb:
struct xml_element { std::string name; std::map<std::string, xml_element> atributes; std::vector<xml_element> content; };genommen.
super, und wo kommen dann die inhalte hin

Sind die Attributwerte nicht einfach Strings?
Für die Inhalte bietet sichboost::variantan.struct xml_element { std::string name; std::map<std::string, std::string> attributes; std::vector<boost::variant<xml_element, std::string>> content; };pop schrieb:
Wie sollte ich die XML-Datei einlesen?
Zeichen für Zeichen? Zeilenweise?
Mach es mit Iteratoren, sodass es zum Beispiel mit
std::string::const_iterator,std::istreambuf_iterator<char>undchar const *funktioniert.
-
wegen sowas gleich boost bemühen? reicht da nicht ein
struct xml_element { std::string name; std::map<std::string, std::string> attributes; std::vector<xml_element> childs; std::string content; };dann schreibt man auf content einen getter und gibt das einfach aus wenn childs.length == 0 ist
@edit: brrrr....
-
Ich würd mir mal die Interfaces von XML DOM der W3C ansehen, XML ist etwas komplizierter als Elemente und Attribute.
MfG SideWinder
-
SideWinder schrieb:
Ich würd mir mal die Interfaces von XML DOM der W3C ansehen, XML ist etwas komplizierter als Elemente und Attribute.
MfG SideWinder
Link?
-
http://www.w3.org/XML bzw. detaillierter http://www.w3.org/TR/2006/REC-xml11-20060816
Die Aufgabe einen XML-Parser selbst zu schreiben ist also in etwa vergleichbar mit der Aussage "Ich baue mal gerade ein Auto"...
-
Th69 schrieb:
Die Aufgabe einen XML-Parser selbst zu schreiben ist also in etwa vergleichbar mit der Aussage "Ich baue mal gerade ein Auto"...
Kommt drauf an, was man damit machen möchte. Einen generischen, High-Level XML-Parser zu schreiben ist natürlich schon sehr anspruchsvoll, aber das will er ja anscheinend gar nicht.
-
crispin kenton schrieb:
childs
parentren
-
hustbaer schrieb:
crispin kenton schrieb:
childs
parentren
parents bitte!
-

-
crispin kenton schrieb:
hustbaer schrieb:
crispin kenton schrieb:
childs
parentren
parents bitte!
children bitte

-
Ups, wollte hier eigentlich nicht gleich ne Diskussion lostreten.
Nein, dies soll kein professioneller XML-Paser sein. Es soll das Grundprinzip von dynamischen Datenstrukturen u.ä. erlernt werden.
Solange die einfach verkette Liste für die Aufgabe ausreicht, bleibe ich dabei. Da keiner (außer ???) auf die Fehleranfälligkeit (gerade für Anfänger) bei der Implementation der einfach verketten Liste hingewiesen hat, bleibe ich dabei. Außer es kommt noch jemand um die Ecke und sagt, dass es damit definitiv nicht geht ;)!
-
hustbaer schrieb:
crispin kenton schrieb:
hustbaer schrieb:
crispin kenton schrieb:
childs
parentren
parents bitte!
children bitte

das ist mir zu lang!
-
Dank euer Hife läuft das Ganze bisher sehr gut. Nun habe ich eine Frage zu XML-Struktur an sich:
Ist folgendes Beispiel zulässig(wohl geformt, nach WC3 Standard, etc.):
<haus><zimmer>rotes Zimmer</zimmer> Villa Kunterbunt </haus>Ist ne ziemlich idiotische Frage, ich weiß. Aber so langsam dreht der Kopf ein wenig.
-
pop schrieb:
Dank euer Hife läuft das Ganze bisher sehr gut. Nun habe ich eine Frage zu XML-Struktur an sich:
Ist folgendes Beispiel zulässig(wohl geformt, nach WC3 Standard, etc.):
<haus><zimmer>rotes Zimmer</zimmer> Villa Kunterbunt </haus>Ist ne ziemlich idiotische Frage, ich weiß. Aber so langsam dreht der Kopf ein wenig.
laut dieser frage auf stackoverflow scheint das valid
http://stackoverflow.com/questions/12130228/can-xml-contain-text-and-child-elements-at-the-same-time
-
firefly schrieb:
pop schrieb:
Dank euer Hife läuft das Ganze bisher sehr gut. Nun habe ich eine Frage zu XML-Struktur an sich:
Ist folgendes Beispiel zulässig(wohl geformt, nach WC3 Standard, etc.):
<haus><zimmer>rotes Zimmer</zimmer> Villa Kunterbunt </haus>Ist ne ziemlich idiotische Frage, ich weiß. Aber so langsam dreht der Kopf ein wenig.
laut dieser frage auf stackoverflow scheint das valid
http://stackoverflow.com/questions/12130228/can-xml-contain-text-and-child-elements-at-the-same-time<haus><zimmer>rotes Zimmer</zimmer> Villa Kunterbunt <info>ja, ich kann von content auf nodes springen</info> und wieder zurück <etc/> <etc/> etc. </haus>
-
crispin kenton schrieb:
hustbaer schrieb:
crispin kenton schrieb:
hustbaer schrieb:
crispin kenton schrieb:
childs
parentren
parents bitte!
children bitte

das ist mir zu lang!
dafür ist es halt falsch
*facepalm*
-
hustbaer schrieb:
crispin kenton schrieb:
hustbaer schrieb:
crispin kenton schrieb:
hustbaer schrieb:
crispin kenton schrieb:
childs
parentren
parents bitte!
children bitte

das ist mir zu lang!
dafür ist es halt falsch
*facepalm*
NEIN, es fällt unter Kunstfreiheit was nach Art. 5 Abs. 3 Grundgesetz (GG). ein Grundrecht in Deutschland ist.
Würden mehr als eine Person daran arbeiten, könnten wir das ausdiskutieren, so nicht!