Avatar billede thewizard Nybegynder
29. august 2009 - 23:34 Der er 5 kommentarer og
1 løsning

Regular expressions - alle chars?

Hej alle,

Jeg sidder med open xml dokumenter (f.eks. docx) og skal trække alle overskrifter fra dokumentet.

En overskrift ser typisk sådan ud:

<w:rPr><w:rStyle w:val="Heading1Char"/></w:rPr><w:t>Thisisaheadline</w:t></w:r></w:p>

eller

<w:pPr><w:pStyle w:val="Heading1"/></w:pPr><w:r><w:t>This is the second headline</w:t></w:r></w:p>

1. Jeg har INGEN anelse hvorfor overskrifter både kan være det ene og det andet..

2. Til at trække alle overskrifter ud, har jeg skrevet følgende regular expression..

preg_match_all('/<w:(r|p)Style w:val=\"Heading1(Char|)\"\/>([a-zA-Z0-9\<\>\/\:\n\r\t\! ]*)<\/w:r>/', $xml, $result);

foreach($result[3] as $headlines) {
  print $headlines."<br />";
}

Hiver alle overskrifter ud, som starter med <w:(r eller p)Style w:val="Heading1(Char eller blank)"/> frem til </w:r>

Desværre hiver den også alle <koder> med, frem til overskriften - hvordan undgår jeg det?

Men læg mærke til at jeg kun trækker bestemte symboler ud, f.eks. hvis brugeren laver en overskrift med $ eller % eller lign., så vil overskriften ikke blive trukket ud - hvordan kan jeg sørge for at det er ALLE overskrifter, lige meget hvilket symbol man bruger?

Mange spørgsmål ;) Håber nogen er frisk på at besvare.
Avatar billede arne_v Ekspert
29. august 2009 - 23:51 #1
Jeg tror ikke på regex som løsning til dit problem.

Parse filen som XML. Det vil give langt bedre kontrol over hvad du får ud.
Avatar billede thewizard Nybegynder
30. august 2009 - 01:57 #2
How? :). Jeg er newbie med XML - det er ikke lige mit område :).
Avatar billede thewizard Nybegynder
30. august 2009 - 02:24 #3
http://dk2.php.net/manual/en/function.xml-parse.php - Noget ala det du mener? Ville sættes pris, hvis du kunne give et peg, behøver ikke være kode - Jeg er ikke bange for at læse tutorials.
Avatar billede arne_v Ekspert
30. august 2009 - 23:51 #4
Du kan jo starte med:
  http://www.eksperten.dk/guide/1263

:-)
Avatar billede thewizard Nybegynder
31. august 2009 - 11:34 #5
Okay arne, bare læg et svar, så kigger jeg på det senere. ;)
Avatar billede arne_v Ekspert
31. august 2009 - 14:47 #6
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



Seneste spørgsmål Seneste aktivitet
I dag 06:10 Excel åbner fil i kæmpe format Af Aske i Excel
I går 22:00 Datafordeler Af Lsk i PHP
I går 12:37 Summere beløb pr. dato Af TTA i Excel
31/1022:44 Tilslutte chassic fans Af viking69 i PC
31/1020:28 LED lysstofrør Af ErikHg i Fri debat