Laden...

Gründe, bei der XML-Verarbeitung String-Operationen zu vermeiden - Belege/Quellen etc.

Erstellt von pilipu vor 10 Jahren Letzter Beitrag vor 10 Jahren 1.992 Views
pilipu Themenstarter:in
26 Beiträge seit 2011
vor 10 Jahren
Gründe, bei der XML-Verarbeitung String-Operationen zu vermeiden - Belege/Quellen etc.

Hallo allerseits,

ich schreibe in diesen heißen Tagen meine Bachelorarbeit, und wie es sich für einen ordentlichen Akademiker gehört bin ich auch fleißig am Quellen und Belege sammeln um die Textfetzen die ich so von mir gebe auch zu belegen.

Hierbei tue ich mich zu folgendem allerdings ein wenig schwer:

Ich benötige eine Quelle oder Beleg um mich in einer Variantendiskussion zu rechtfertigen warum ich bei der Umsetzung eines Programms, das ich im Rahmen meiner Arbeit entwickle, die Klassen von LINQ to XML der Manipulation von strings, die XML enthalten, bevorzuge.

Warum ich nicht mit strings hantieren sollte wenn ich supi Klassen dafür habe ist mir klar, das ist so ziemlich jedem klar (oder sollte es klar sein?)
Das Problem ist, dass ich es belegen muss in meiner Arbeit.
Ich kann ja schlecht schreiben "isso weil isso du noob"

Also was ich suche: Irendein Buch, Blog, Artikel, what ever, der sich damit mal befasst hat und gründe aufführt wieso man string operationen immer vermeiden sollte wenn es möglich ist. Ich habe mich bei der Suche bisher aufgerieben und treibe das Kapitel so vor mir her.

Kann mir da jemand helfen ? =)

PS: Was mir beim nochmals lesen dieses Beitrags auffällt, ist das überhaupt rechtens wenn ich bei der Quellensuche Hilfe erbitte?

"Wer mit künstlicher Intelligenz arbeitet, muß auch mit natürlicher Dummheit rechnen." - Klaus Kornwachs

16.807 Beiträge seit 2008
vor 10 Jahren

Also ich würde nicht pauschal sagen, dass man String-Operationen vermeiden sollte.

Wenn ich Dich richtig verstehe, dass verwendest Du Klassen, die aus einer XML serialisiert/deserialisiert werden.
Das ganze ist sicher praktisch und einfach - aber nicht performant.

Wenn Du XElement und Co verwendest, dann hast Du hier auch abhängigkeiten zu (Magic)Strings; ansonsten könntst Du ja keine Nodes selektieren.

Mir wird persönlich nicht klar, worauf Du hinaus willst.
XDocument und Co haben übrigens auch massive Nachteile wenns darum geht, dass große Dateien bearbeitet werden müssen. Es lädt im Gegensatz zu einem XmlDocument alles sofort in den Speicher - und wenn Du dann zufällig die OpenStreetMap-XML Dateien laden willst, dann kommst Du mit XDocument in der Regel nicht weit.
Da wird aus einer 2GB XML mal schnell 15GB RAM-Verbrauch.

Was willst Du also vergleichen und aussagen?
Xml.Linq-Namespace zu XPath? Oder zum reinen Filestream?

pilipu Themenstarter:in
26 Beiträge seit 2011
vor 10 Jahren

Okay ich habe schon befürchtet ohne Kontext könnte unklar werden worauf ich hinaus will.

Das Programm lässt es zu, dass der Nutzer über selbst geschrieben script code xml manipulieren kann. Hierfür "überlasse" ich ihm ein objekt an dem er munter arbeiten kann wie er das eben möchte.

Die Variantendiskussion beziehet sich also darauf warum ich ihm anstelle eines strings ein XElement Objekt übergebe. Was spricht gegen einen String oder allg. welche Nachteile können String Operationen nach sich ziehen.

Wegen den Nachteilen zu XDocument: die sind mir durchaus bewusst, jedoch im Blick darauf welche Dateien damit bearbeitet werden, spielt es keine Rolle. Ist auch ausreichend betrachtet 😉

"Wer mit künstlicher Intelligenz arbeitet, muß auch mit natürlicher Dummheit rechnen." - Klaus Kornwachs

799 Beiträge seit 2007
vor 10 Jahren

Generell ist das ja nicht schwer zu finden. Was hast du denn bereits gesucht bevor du die Arbeit in ein anonymes Forum auslagerst? 😉

Von der MSDN-Seite zu XML und .Net bist du ja nur noch einen Klick zu Blog-Beiträgen mit dazu gehörenden Artikeln wie z.B. diesen hier: The world has moved on, have you? Xml APIs you should avoid using.

Wenn du dich auf so State of the Art Fragen konzentrierst wirst du entweder ewig für die Arbeit brauchen oder eine sehr seichte abliefern.

As a man thinketh in his heart, so he is.

  • Jun Fan
    Es gibt nichts Gutes, außer man tut es.
  • Erich Kästner
    Krawutzi-Kaputzi
  • Kasperl
49.485 Beiträge seit 2005
vor 10 Jahren

Hallo pilipu,

ich glaube du verwechselt da was. Belegen musst du nur, was du nicht selbst begründen kannst. In dem konkreten Fall sind die Vorteile so offensichtlich, dass es einem die Begründung leicht fallen sollte. Einen Beleg brauchst du nur bei Behauptungen, die du nicht selbst beweisen kannst sowie für das, was du von anderen als Vorarbeit übernimmst. Der gute Akademiker stützt sich nicht nur auf andere, sondern erbringt auch eine eigenständige Leistung. 😃

Da es sich in diesem Thread (auch vor meinem Beitrag) kaum um Quellen für Belege dreht, sondern zum einen um die Sache selbst und zum anderen um die Meta-Ebene, habe ich den Thread aus Buchempfehlungen verschoben.

herbivore

M
120 Beiträge seit 2009
vor 10 Jahren

Zumal gerade die Frage nach LINQ oder Strings bei XML in etwa so ist ob man eine Eierschale lieber mit der Hand oder mit einem Hammer aufmacht 😉

Wenn schon müsste man begründen, warum man LINQ nimmt. Oder wenn man Strings verwendet müsste man (IMO extrem gut) begründen, warum man das tut.

Eigentlich braucht man sich nur die XML zugehörigen Techniken/Spezifikationen ansehen (bzw. referenzieren) damit klar wird, warum man XML nicht als Strings verarbeitet, sondern mithilfe von DOM, XPath usw.

Den Link im Blog-Eintrag bezüglich XslCompiledTransform finde ich lustig...da schreiben die Wallsoftext über Performance, obwohl die Microsoft-Klassen gerade in Hinblick auf XSL ohnehin schon so outdated und damit nicht empfehlenswert sind, weil die immernoch kein XPath 2.0/XSLT 2.0 können.

pilipu Themenstarter:in
26 Beiträge seit 2011
vor 10 Jahren

moin,

danke erstmal für die antworten, ich denke mit diesen neuen erkenntnissen / denkanstößen lässt sich arbeiten. Habe auch schon eine grobe vorstellung von dem was ich nun wohl schreiben werde.

@herbivore: was die eigenleistung anbelangt hast du natürlich recht. das problem ist jedoch die panikmache an unis / hochschulen nach der guttenberg geschichte. man wird inzwischen (meine erfahrung) so mit dieser thematik des richtigen zitierens und belegens eingezwängt dass nur noch wenig eigenes sich entwickeln kann. schreckliche zeit um zu studieren und ich bin froh wenn ich hauptberuflich dass machen kann was mir deutlich mehr spaß macht: software entwickeln

"Wer mit künstlicher Intelligenz arbeitet, muß auch mit natürlicher Dummheit rechnen." - Klaus Kornwachs

49.485 Beiträge seit 2005
vor 10 Jahren

Hallo pilipu,

richtig zitieren musst du ja nur, wenn du überhaupt zitierst. Wenn man etwas fremdes übernimmt, dann hat man normalerweise auch die Quelle. Man muss dann nur dran denken, sie auch anzugeben. Wenn man keine Quelle hat, wie du, kann man normalerweise auch in Bezug auf das Zitieren nichts falsch machen, weil man dann ja überhaupt nichts zitiert.

herbivore