XML Leerzeichen übernehmen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: XML Leerzeichen übernehmen

Re: XML Leerzeichen übernehmen

von polo85 » Fr, 11.09.2009 09:43

du bist ja wirklich hartnäckig, im positiven Sinne! Danke für dein Eifer!Funktioniert super, aber leider nur für die zeilenumbrüche, mit den tabulatoren oder leerzeichen hat er zu viele probleme, ausserdem habe ich mehr oder weniger die meisten Dokumente umgewandelt und händisch weitere Nacharbeit geleistet! Ich werde deinen Vorschlag für die Zukunft umsetzten und noch schauen ob ich es für die alten Dokumente verwenden kann!

Re: XML Leerzeichen übernehmen

von wfrank » Fr, 11.09.2009 08:15

vielleicht fällt ja noch jemand was dazu ein

--- ich kenn jetzt nur einen Workaround, den ich erstmal verwenden würde, damit es handhabbar fertig wird:

Code: Alles auswählen

    <xsl:template match="programlisting">
            <xsl:element name="text:p">
          <xsl:attribute name="text:style-name">Frame contents</xsl:attribute>

 <!-- Zeilenumbruch -->
      <xsl:value-of select="replace(current(),'&#x0A;','<literal>mybreak</literal>')" />

           <!-- <xsl:apply-templates/> -->
            </xsl:element>
        </xsl:template>
    </xsl:stylesheet>
im Oo-Dokument sieht das dann so aus:
{LOGGING<literal>mybreak</literal> CURRENTDEVICE = FILE

und dann mit Suchen - Ersetzen:
Suche : <literal>mybreak</literal>
Ersetze: \n
unter Optionen muss "Regulärer Ausdruck angeklickt sein".

Damit kann man dann alle Suchen und alle auf einen Schlag ersetzen -- wenn man mutig ist.
(ich klick mich da immer erst von einem zum anderen durch... )


aber vielleicht machst du das ja schon so oder so ähnlich ...

wf


P.S. ist ja vielleicht ein bisschen hart was wir da wollen

Re: XML Leerzeichen übernehmen

von polo85 » Mi, 09.09.2009 14:40

Also mein xslt kennt dieses Konstrukt nicht ist aber auch irrelevant, da die docBook Dokumente bereits existieren und ich jene nicht vorher abändern möchte bevor ich in sich nach odt umwandle!

Re: XML Leerzeichen übernehmen

von wfrank » Mi, 09.09.2009 11:01

noch was zum schnellen testen: funktioniert ein
<literallayout>blab bla
bla bla </literallayout>
Konstrukt ??


Quelle: http://www.hoferichter.net/index.php?id ... lenumbruch

wf

Re: XML Leerzeichen übernehmen

von polo85 » Mi, 09.09.2009 10:36

Anbei die Darstellung des bisher verwendeten PDF generators.
Dateianhänge
So sollte die endgütige Fassung als ODT aussehen.
So sollte die endgütige Fassung als ODT aussehen.
AuszugPDF.jpg (40.03 KiB) 3306 mal betrachtet

Re: XML Leerzeichen übernehmen

von polo85 » Mi, 09.09.2009 08:58

Hi so ähnlich ja, ich gebe diesen Weg langsam ab und werde wohl in den sauren Apfel beißen und sämtliche Dokumente händisch bearbeiten! würg! :?

Aber hier die Codeschnipsel:

Auszug aus Docbook:

Code: Alles auswählen


      <section id="DatenLoggin">
        <title>LOGGING-Sektion</title>

        <para>Diese Sektion ist optional.</para>

        <para>Sofern der <literal>LOGFILENAME</literal> mit einem
        <literal>.</literal> oder <literal>/</literal> beginnt, wird er direkt
        übernommen, andernfalls wird der Inhalt der Environmentvariable
        <literal>$HOME</literal> am Anfang eingefügt.</para>

        <para>Verzeichnisnamen dürfen Unxistyle <literal>/</literal> oder
        OS2-style <literal>\\</literal> getrennt werden, die Trennzeichen
        werden entsprechend dem Betriebssystem angepaßt.</para>

        <para>Falls das Logfile nicht geöffnet werden kann, beendet sich der
        Server.</para>

        <para>Es gibt eine Alterung der Logfiles statt, dafür kann die Anzahl
        der Logfiles <literal>LOGFILECOUNT</literal>.</para>

        <para>Und eine maximale Größe <literal>LOGFILESIZE</literal> angegeben
        werden. Das aktuelle Logfile bekommt eine zusätzliche Endung
        <literal>.000</literal>, die älteren Logfiles bekommen aufsteigende
        Nummern als Endung.</para>

        <programlisting>{LOGGING
   CURRENTDEVICE = FILE # current log-device
   {
        DEVICES # Description of all devices
        {
           FILE
           LOGFILENAME = log/bas.log
           LOGFILECOUNT = 5 # maximum number of logfiles created
           # before reuse occurs
           LOGFILESIZE = 25000000 # maximum filesize in bytes
           ADDPROCESSID = FALSE
        }
   }
}        </programlisting>
      </section>

Das XSLT:

Code: Alles auswählen

<xsl:template match="programlisting">
        <xsl:element name="text:p">
		<xsl:attribute name="text:style-name">Frame contents</xsl:attribute>
		<xsl:apply-templates/>
        </xsl:element>
    </xsl:template>
</xsl:stylesheet>
Das erwartete Ergebnis mit dem pdf , das die Vorlage für ODT ist beigefügt!
nachtrag: Irgendwie kann ich das jpg nicht hochladen bzw. wird nicht angezeigt!

Vielleicht findet da noch wer die Lösung.

Re: XML Leerzeichen übernehmen

von wfrank » Mo, 07.09.2009 17:14

ich hab jetzt verstanden dass es bei content.xml schon zu spät ist -- du
hast ein XML document das über diesen angepassten Filter in den Writer
geladen wird. Und da solls halt schon stimmen.

Mit dem Filter kannst jetzt zwar Zeilenumbrüche erkennen (?) und durch ein Zeichen
ersetzen (?) aber du weisst nicht womit du ersetzen musst damit im Writer ein
Zeilenumbruch kommt. (?)

Du hast keine Stelle an der ein Zeilenumbruch richtig rüberkommt, sonst hättest du ja
dort ablesen können was an diesem Zeilenumbruch in deinem Original anders ist.


So langsam wirds schwierig -- kannst du ein Text Schnipsel als Beispiel
und vielleicht den geänderten Filter oder den Original Filter zur Verfügung
stellen. (Im Idealfall kommst du bei der Gelegenheit von allein auf die Lösung )

wf

Re: XML Leerzeichen übernehmen

von polo85 » Mo, 07.09.2009 15:05

Ne der Filter arbeitet anders.
1) Liest das Ursprungsdokument (in meinem Fall Open Book) ein
2) Erstellt mit Hilfe des XSLT-Filters und einer Dokumentenvorlage ein neues Dokument und wandelt die Formatierungen in jene Syntax des ODT Dokuments um. Jedoch ist die Standard Umwandlung sehr spartanisch und kennt nicht die ganze Open Book Befehle.

Und da spring ich ein und versuche das Enddokument mit Hilfe des Filters nach unseren Anforderungen zu erstellen.

Aber im Prinzip hast du schon Recht und arbeite ähnlich wie du es mir vorgeschlagen hast, nur stoße ich eben auf das Problem dass die Zeilenumbrüche in einem bestimmten Kontext auftreten, so dass ich die Zeilenumbruchbefehle nicht einfach durch suchen und ersetzten kann.

Re: XML Leerzeichen übernehmen

von wfrank » Mo, 07.09.2009 14:11

ich hatte mir vorgestellt, dass dein Filter direkt das *.odt, also
irgendwie das content.xml erstellt und hatte daher
gedacht den Zeilenumbruch durch "<text:line-break />"
zu ersetzen.
"<text:line-break />" ist das Element das ooo in ein content.xml
schreibt, wenn man ins Dokument z.B. ein Return reinsetzt und sich
das dann in content.xml anschaut.

(ist das zu brutal gedacht ? )
wf

Re: XML Leerzeichen übernehmen

von polo85 » Mo, 07.09.2009 13:11

Also nach dem Tip von wfrank kam ich ein wenig weiter, jedoch hänge an der nächsten Stelle:
Anbei die kritische Codestelle:

Code: Alles auswählen

  <xsl:template match="programlisting">
        <xsl:element name="text:p">
		<xsl:attribute name="text:style-name">Frame contents</xsl:attribute>
		<!-- Zeilenumbruch -->
		<xsl:value-of select="translate(current(),'&#x0A;','?')" />
		<!--Leerzeichen-->
		<xsl:value-of select="translate(current(),'&#x20;','?')" />
        </xsl:element>
    </xsl:template>
Ich weiß nicht mit welchen Zeichen ich den Zeilenumbruch und die Leerzeichen ersetzen muß, damit diese auch im Dokument auftauchen. Der Zeilenumbruch in ODF sieht
<text:p text:style-name="Standard"/>
aus und das Leerzeichen
<text:s text:c="17"/>

Re: XML Leerzeichen übernehmen

von polo85 » So, 06.09.2009 13:19

Kann ein Admin diesen Beitrag zum OOo Basic und Java Forum hinzufügen, da ich nicht doppelt posten möchte.

Re: XML Leerzeichen übernehmen

von lorbass » So, 06.09.2009 10:29

polo85 hat geschrieben:Wüsste einer wenigstens an wen ich mich mit diesem Problem wenden könnte?
Ja, an das für solche Fragen eingerichtete Forum OOo Basic und Java.

Gruß
lorbass

Re: XML Leerzeichen übernehmen

von wfrank » So, 06.09.2009 09:40

vielleicht wars ja ein bischen Unsinn gerade eben -- obwohl:
hab aber noch ein bisschen gegoogelt und man kann wohl
Zeilenumbrüche in XSLT erkennen:
http://www.xmlplease.com/whitespace
und dort
1. Whitespace in a text string
mit replace bzw. translate Funktionen anpacken.

So lese ich das zumindest mal -- hoffe es hilft.

wf

Re: XML Leerzeichen übernehmen

von wfrank » So, 06.09.2009 08:42

das *.odt öffnen, einen Zeilenumbruch einbauen, speichern, im content.xml nachschauen
wie das aussehen muss - ob da ein Muster, ein Unterschied zu erkennen ist ?? Lässt sich damit der
xslt Filter anpassen ?

hilft sowas weiter ?
wf

Re: XML Leerzeichen übernehmen

von polo85 » So, 06.09.2009 01:01

Wüsste einer wenigstens an wen ich mich mit diesem Problem wenden könnte?

Nach oben