2012-04-10 5 views
1

Ich versuche herauszufinden, wie Sie Text in einer Fußzeile einer ODT-Datei ändern. Die Fußzeile wird im styles.xml gehalten, aber ich kann es nicht selectElementsByContent mit zuzugreifen scheinen oder eine andere Methode:Perl OpenOffice :: OODoc Ändern Kopf-/Fußzeile Stil Text

my $a = odfContainer('test.odt'); 
my $styles = odfDocument(container => $a, part => 'styles'); 

foreach my $element ($styles->selectElementsByContent('mytest')) 
{ 
    #never runs... 

} 

Die styles.xml im odt ist wie:

<office:document-styles> 
    <office:master-styles> 
     <style:master-page> 
      <style:footer> 
       <text:p test:style-name="P49"> 
        mytest 
       </text:p> 
      </style:footer> 
     </style:master-page> 
    </office:master-styles> 
</office:document-styles> 

Was ist der richtige Weg, um den Text zu ändern: p contents?

Antwort

0

I landete mit odfXPath Schleife verwenden, um durch:

my $ss = odfXPath(file => 'myfile.odt' , part => 'styles'); 
my $p =0; 
while (my $p = $ss->getElement('//text:p',$p)) 
{ 
if ($ss->getText($para) eq 'mytest') { $ss->setText($p,'foobar');} 
$p++; 
} 
$ss->save('mynewfile.odt');