www.mikrocontroller.net

Forum: PC-Programmierung [xml] Normalisierung von Einrückungen in Text-Abschnitten


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hi
Ich hab schon öfter beim Schreiben/Verarbeiten von XML mich über den 
Konflikt von ordentlicher Formatierung und Inhalt geärgert.

wenn man den XML-Code ordentlich hierarchisch schreibt und einrückt hat 
man ein Problem bei den Text-Nodes, dass die Einrückung und Umbrüche, 
die eigentlich nur der Übersichtlichkeit dienen die Nutzdaten 
beeinflussen.
<someXml>
  <substructure><- nl a
    <someText><- nl b
<- f ->this is some text that should be left aligned.
<- f -><-    t     ->some more text.<-nl b
    </someText>
  </substructure>
</someXml>

der mit f gekennzeichnete Teil ist eigentlich unerwünscht.
gleiches gilt für die mit "<- nl b" gekennzeichneten Zeilenumbrüche
der mit t gekennzeichnete Teil ist erwünscht.

die Zeilenumbrüche "<- nl a" (und der Whitespace am Anfang neuen Zeile) 
sind unter Umständen sogar schädlich für die erfolgreiche Validierung 
eines Dokumentes, da sie einen Textknoten einfügen, der laut Schema 
eventuell gar nicht erlaubt ist.


und so möchte man normalerweise sein xml nicht schreiben:
<someXml><substructure><someText>this is some text that should be left aligned.
              some more text.</someText></substructure></someXml>

gibts hierfür irgendwelche eleganten Lösungen?
(ich benutze meist die libxml)


Gruß
Vlad

Autor: Robert L. (lrlr)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
ganz einfach: XML  nicht in einem Text Editor editieren, sondern in 
einem (vernünftigen) XML Editor ..

bzw. natürlich [CDATA[ verwenden

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Robert L. schrieb:
> ganz einfach: XML  nicht in einem Text Editor editieren, sondern in
> einem (vernünftigen) XML Editor ..

die stärke von XML ist ja gerade, dass es ohne speziellen Editor 
menschenlesbar und editierbar ist


> bzw. natürlich [CDATA[ verwenden
kannte ich noch nicht, danke. Das verhindert immerhin, dass man sich um 
spezielle entitäten kümmern muss.

Das Problem mit der zur Einrückung des Elternelements relativen 
Kindeinrückung löst es natürlich nicht.

ebendso das Problem mit den Textknoten aus Whitespaces zwischen zwei 
tags

Autor: Läubi .. (laeubi) (Moderator) Benutzerseite
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Vlad Tepesch schrieb:
> gibts hierfür irgendwelche eleganten Lösungen?

Ordentlichen XML Parser nutzen? Whitespaces (\r \n \t \s) werden (soweit 
es das Kontentmodel nicht anders vorschreibt) ignoriert, da werden keine 
"Textknoten" eingefügt, wenn man dies will müssen diese passend 
Encodiert werden (Enteties, CDATA). Nur wenn der Inhalt ein String ist 
kann es sein das dies ausgewertet wird, dann hilft dir aber auch keine 
"elegante" Lösung, da dies dann teil des Inhaltes ist.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net