[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste

XML-Tags vollständig löschen

Martin Fischer
  
Beiträge gesamt: 12783

18. Jun 2019, 17:35
Bewertung:

gelesen: 12277

Beitrag als Lesezeichen
Das folgende Schnipsel sollte zum Einen alle freistehenden Textrahmen (nicht verankert, nicht gruppiert, nicht in Tabellen ...) taggen (falls nicht bereits getaggt) und zum Anderen dem (ggf. neu) zugewiesenen xmlElement das xmlAttribut 'A' mit dem Wert '...' zuweisen.

Code
var doc = app.activeDocument;  
var xml_tag = (doc.xmlTags.itemByName('A').isValid) ? doc.xmlTags.itemByName('A') : doc.xmlTags.add({name:'A'});
var xml_element = null;

for (var i = doc.textFrames.length-1; i >= 0; i--)
{
if (doc.textFrames.item(i).associatedXMLElement != null)
{
// Textrahmen bereits getaggt
xml_element = doc.textFrames.item(i).associatedXMLElement;
}
else
{
// Textrahmen noch nicht getaggt
xml_element = doc.xmlElements.firstItem().xmlElements.add({markupTag: xml_tag});
doc.textFrames.item(i).markup(xml_element);
}
try
{
//Versuch, das angegebene xmlAttribut zuzuweisen
if (!doc.textFrames.item(i).associatedXMLElement.xmlAttributes.itemByName('X').isValid)
doc.textFrames.item(i).associatedXMLElement.xmlAttributes.add('X', '...');
}
catch(e)
{
// Zuweisung des xmlAttributs misslungen
$.writeln( e.message );
}
}


(Dieser Beitrag wurde von Martin Fischer am 18. Jun 2019, 17:54 geändert)
Änderungsverlauf:
Beitrag geändert von Martin Fischer (Moderator) am 18. Jun 2019, 17:38
Beitrag geändert von Martin Fischer (Moderator) am 18. Jun 2019, 17:38
Beitrag geändert von Martin Fischer (Moderator) am 18. Jun 2019, 17:40
Beitrag geändert von Martin Fischer (Moderator) am 18. Jun 2019, 17:44
Beitrag geändert von Martin Fischer (Moderator) am 18. Jun 2019, 17:54