Hallo,
ich möchte in einer (bereits separat im Dateisystem gespeicherten) content.xml-Datei (aus Textdokument, *.odt) bestimmte Abschnitte finden und separieren (z.B. in einer Variable speichern) um sie nachfolgend bearbeiten zu können.
Der Aufbau der content.xml-Datei entspricht dem einer völlig üblichen content.xml eines odt-Dokuments, mit der Besonderheit das u.A. in diesem Dokument "an der Seite" verankerte Textrahmen vorhanden sind.
Schematisch ist der Aufbau innerhalb des body-bereichs der content.xml also ungefähr so:
<office:body>
<office:text [...] >
<!-- Abschnitt A -->
<text:sequence-decls>
[...]
</text:sequence-decls>
<text:user-field-decls>
[...]
</text:user-field-decls>
[...]
<!----------------->
<!-- Abschnitt B -->
<draw:frame [...]>
[...]
</draw:frame>
[...]
<!----------------->
<!-- Abschnitt C -->
<text:p [...]>
[...]
</text:p>
[...]
<!----------------->
</office:text>
</office:body>
"Abschnitt A" und "Abschnitt C" interessieren vorerst nicht.
In "Abschnitt B" müssen alle "<draw:frame [...]> [...] </draw:frame>" gefunden und zur weiteren Bearbeitung zwischengespeichert werden.
Der Beginn von "Abschnitt B" ist begrenzt durch das erste Auftauchen von "<draw:frame [...]>" und das Ende ist unmittelbar vor dem ersten Aufttauchen von "<text:p [...]>" (auf gleicher Hirarchieebene wie "<draw:frame [...]>").
Hinweis: es genügt nicht alle "<draw:frame [...]> [...] </draw:frame>" zu finden, denn solche Tags können auch in "Abschnitt C" vorhanden sein, gesucht sind jedoch nur diejenigen aus "Abschnitt B".
Wer hat Ideen?
Ziel ist es die zwischengespeicherten Teile "<draw:frame [...]> [...] </draw:frame>" anschliessend zu bearbeiten und danach die content.xml, unter Benutzung der earbeiteten Teile, wieder 'zusammenzusetzen' - das aber nur als Erläuterung es geht zunächst nur um die o.g. Aufgabe.
Ich habe bereits folgenden Thread gefunden:
viewtopic.php?t=62289
komme damit jedoch nicht wirklich weiter.
Gruß
Stephan
P.S.
Hier ist ein Beispiel für eine komplette content.xml die meinen 'Anforderungen' entspricht, wobei nochmal gesagt sei das es sich eigentlich um eine völlig übliche content.xml handelt. Die zu findenden Abschnitte (in der konkreten Datei hier sind das 2 Abschnitte) sind verschiedenfarbig hervorgehoben:
<?xml version="1.0" encoding="UTF-8"?>
<office:document-content xmlns:office="urn:oasis:names:tc:opendocument:xmlns

1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="
http://www.w3.org/1999/xlink" xmlns:dc="
http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns

1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="
http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:ooo="
http://openoffice.org/2004/office" xmlns:ooow="
http://openoffice.org/2004/writer" xmlns:oooc="
http://openoffice.org/2004/calc" xmlns:dom="
http://www.w3.org/2001/xml-events" xmlns:xforms="
http://www.w3.org/2002/xforms" xmlns:xsd="
http://www.w3.org/2001/XMLSchema" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" xmlns:rpt="
http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="
http://www.w3.org/1999/xhtml" xmlns:grddl="
http://www.w3.org/2003/g/data-view#" xmlns:tableooo="
http://openoffice.org/2009/table" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" office:version="1.2" grddl:transformation="
http://docs.oasis-open.org/office/1.2/x ... :font-face style:name="Mangal1" svg:font-family="Mangal"/><style:font-face style:name="Times New Roman" svg:font-family="'Times New Roman'" style:font-family-generic="roman" style:font-pitch="variable"/><style:font-face style:name="Arial" svg:font-family="Arial" style:font-family-generic="swiss" style:font-pitch="variable"/><style:font-face style:name="Mangal" svg:font-family="Mangal" style:font-family-generic="system" style:font-pitch="variable"/><style:font-face style:name="Microsoft YaHei" svg:font-family="'Microsoft YaHei'" style:font-family-generic="system" style:font-pitch="variable"/><style:font-face style:name="SimSun" svg:font-family="SimSun" style:font-family-generic="system" style:font-pitch="variable"/></office:font-face-decls><office:automatic-styles><style:style style:name="P1" style:family="paragraph" style:parent-style-name="Frame_20_contents" style:master-page-name=""><style:paragraph-properties style:page-number="auto" fo:break-before="page"/></style:style><style:style style:name="fr1" style:family="graphic" style:parent-style-name="Frame"><style:graphic-properties style:vertical-pos="from-top" style:vertical-rel="page" style:horizontal-pos="from-left" style:horizontal-rel="page" fo:background-color="#ffff00" style:background-transparency="0%"><style:background-image/></style:graphic-properties></style:style><style:style style:name="fr2" style:family="graphic" style:parent-style-name="Frame"><style:graphic-properties style:vertical-pos="top" style:vertical-rel="paragraph-content" style:horizontal-pos="center" style:horizontal-rel="paragraph"/></style:style><style:style style:name="fr3" style:family="graphic" style:parent-style-name="Graphics"><style:graphic-properties style:run-through="foreground" style:wrap="parallel" style:number-wrapped-paragraphs="no-limit" style:wrap-contour="false" style:vertical-pos="from-top" style:vertical-rel="page" style:horizontal-pos="from-left" style:horizontal-rel="page" style:mirror="none" fo:clip="rect(0cm, 0cm, 0cm, 0cm)" draw:luminance="0%" draw:contrast="0%" draw:red="0%" draw:green="0%" draw:blue="0%" draw:gamma="100%" draw:color-inversion="false" draw:image-opacity="100%" draw:color-mode="standard"/></style:style></office:automatic-styles><office:body><office:text text:use-soft-page-breaks="true"><text:sequence-decls><text:sequence-decl text:display-outline-level="0" text:name="Illustration"/><text:sequence-decl text:display-outline-level="0" text:name="Table"/><text:sequence-decl text:display-outline-level="0" text:name="Text"/><text:sequence-decl text:display-outline-level="0" text:name="Drawing"/></text:sequence-decls>
<draw:frame draw:style-name="fr1" draw:name="Rahmen1" text:anchor-type="page" text:anchor-page-number="1" svg:x="7.86cm" svg:y="5.519cm" svg:width="4.838cm" svg:height="3.006cm" draw:z-index="0"><draw:text-box><text:p text:style-name="Frame_20_contents"><text:database-display text:table-name="Tabelle1" text:table-type="table" text:column-name="Anrede" text:database-name="Neue Datenbank3"><Anrede></text:database-display></text:p><text:p text:style-name="Frame_20_contents"><text:database-display text:table-name="Tabelle1" text:table-type="table" text:column-name="Vorname" text:database-name="Neue Datenbank3"><Vorname></text:database-display><text:database-display text:table-name="Tabelle1" text:table-type="table" text:column-name="Name" text:database-name="Neue Datenbank3"><Name></text:database-display></text:p><text:p text:style-name="Frame_20_contents"><text:database-display text:table-name="Tabelle1" text:table-type="table" text:column-name="Strasse" text:database-name="Neue Datenbank3"><Strasse></text:database-display></text:p><text:p text:style-name="Frame_20_contents"><text:database-display text:table-name="Tabelle1" text:table-type="table" text:column-name="PLZ" text:database-name="Neue Datenbank3"><PLZ></text:database-display> <text:database-display text:table-name="Tabelle1" text:table-type="table" text:column-name="Ort" text:database-name="Neue Datenbank3"><Ort></text:database-display></text:p></draw:text-box></draw:frame><draw:frame draw:style-name="fr3" draw:name="Grafik1" text:anchor-type="page" text:anchor-page-number="1" svg:x="12.966cm" svg:y="3.625cm" svg:width="1.789cm" svg:height="1.143cm" draw:z-index="2"><draw:image xlink:href="Pictures/10000000000004000000030010393590.jpg" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/></draw:frame><text:p text:style-name="P1"><text:bookmark text:name="jms-anfang"/><text:database-display text:table-name="Tabelle1" text:table-type="table" text:column-name="Name" text:database-name="Neue Datenbank3"><Name></text:database-display></text:p><text:p text:style-name="Standard">Er hörte leise Schritte hinter sich. Das bedeutete nichts Gutes. Wer würde ihm schon folgen, spät in der Nacht und dazu noch in dieser engen Gasse mitten im übel beleumundeten Hafenviertel? Gerade jetzt, wo er das Ding seines Lebens gedreht hatte und mit der Beute verschwinden wollte! Hatte einer seiner zahllosen Kollegen dieselbe Idee gehabt, ihn beobachtet und abgewartet, um ihn nun um die Früchte seiner Arbeit zu erleichtern? Oder gehörten die Schritte hinter ihm zu einem der unzähligen Gesetzeshüter dieser Stadt, und die stählerne Acht um seine Handgelenke würde gleich zuschnappen? Er konnte die Aufforderung stehen zu bleiben schon hören. Gehetzt sah er sich um. Plötzlich erblickte er den schmalen Durchgang. </text:p><text:p text:style-name="Standard">Blitzartig drehte er sich nach rechts und verschwand zwischen den beiden Gebäuden. Beinahe wäre er dabei über den umgestürzten Mülleimer gefallen, der mitten im Weg lag. Er versuchte, sich in der Dunkelheit seinen Weg zu ertasten und erstarrte: Anscheinend gab es keinen anderen Ausweg aus diesem kleinen Hof als den Durchgang, durch den er gekommen war. Die Schritte wurden lauter und lauter, er sah eine dunkle Gestalt um die Ecke biegen. Fieberhaft irrten seine Augen durch die nächtliche Dunkelheit und suchten einen Ausweg. War jetzt wirklich alles vorbei, waren alle Mühe und alle Vorbereitungen umsonst? Er presste sich ganz eng an die Wand hinter ihm und hoffte, der Verfolger würde ihn übersehen, als plötzlich neben ihm mit kaum wahrnehmbarem Quietschen eine Tür im nächtlichen Wind hin und her schwang. Könnte dieses der flehentlich herbeigesehnte Ausweg aus seinem Dilemma sein? Langsam bewegte er sich auf die offene Tür zu, immer dicht an die Mauer gepresst. Würde diese Tür seine Rettung werden?</text:p><text:p text:style-name="Standard"/><text:p text:style-name="Standard"><draw:frame draw:style-name="fr2" draw:name="Rahmen2" text:anchor-type="paragraph" svg:width="2cm" draw:z-index="1"><draw:text-box fo:min-height="0.499cm"><text:p text:style-name="Frame_20_contents">Rahmen an absatz</text:p></draw:text-box></draw:frame></text:p><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard"><text:soft-page-break/></text:p><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard">Noch etwas text</text:p><text:p text:style-name="Standard"><text:database-display text:table-name="Tabelle1" text:table-type="table" text:column-name="Name" text:database-name="Neue Datenbank3"><Name></text:database-display></text:p><text:p text:style-name="Standard"/><text:p text:style-name="Standard"/><text:p text:style-name="Standard"><text:bookmark text:name="jms-ende"/></text:p></office:text></office:body></office:document-content>