[GastForen Programme Print/Bildbearbeitung Adobe InDesign

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste

InDesign: XML-Import und CDATA-Abschnitte / GREP-Problem

Peter Sauseng
Beiträge gesamt: 484

25. Jan 2019, 10:49
Bewertung:

gelesen: 4600

Beitrag als Lesezeichen
Das Problem mit dem Weißraum bei diesen CDATA-Texten kann man mit normalize-space ganz gut lösen. Ich füge dann nur dort einen Zeilenumbruch mit 
 ein, wo es notwendig ist.

Ein neues Problem habe ich aber mit Listen.
Ich würde gerne zwischen Hauptlisten und Unterlisten unterscheiden.

Z.B. bei Unterlisten <li2> statt <li> einfügen, damit ich in InDesign eine andere Formatierung zuweisen kann.

Leider habe ich keine passenden Regular Expressions gefunden.

Beispiel:
Code
<ul> 
<li>Hauptliste: Punkt 1</li>
<li>Hauptliste: Punkt 2
<ul>
<li>Unterliste: Punkt 1</li>
<li>Unterliste: Punkt 2</li>
</ul>
</li>
<li>Hauptliste: Punkt 3</li>
<li>Hauptliste: Punkt 4
<ul>
<li>Unterliste 2: Punkt 1</li>
<li>Unterliste 2: Punkt 1</li>
</ul>
</li>
<li>Hauptliste: Punkt 5</li>
</ul>


Ich würde gerne alle <li> von Unterlisten durch <li2> ersetzen.

Nach der Entfernung aller Leerzeichen zwischen den HTML-Befehlen habe ich folgendes GREP ausprobiert:

(<li>.+?<ul>.*?)<li>(.+?</ul></li>) ersetze durch: $1<li2>$2

Das würde auch funktionieren, wenn man es mehrmals ausführt und es immer nur eine Unterliste gibt.

Da es aber auch mehrere Unterlisten geben kann, wird auch das <li> in der Hauptliste gefunden, da es auch vor diesem <li> vorher ein <li>.+?<ul> und nacher ein </ul></li> gibt.

Dass diese gefundenen <ul> und </ul> nicht von der gleichen Liste stammen, ist der Suche natürlich egal.

Weiß jemand, ob man das irgendwie umgehen könnte.

Gruß, Peter

(Dieser Beitrag wurde von Peter Sauseng am 25. Jan 2019, 10:56 geändert)
Änderungsverlauf:
Beitrag geändert von Peter Sauseng (User) am 25. Jan 2019, 10:56