[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt XML Attribut per JavaScript ändern

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

XML Attribut per JavaScript ändern

madoho
Beiträge gesamt: 140

26. Okt 2011, 13:04
Beitrag # 1 von 3
Bewertung:
(1777 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,
ich habe folgendes Problem: bekomme ein XML, darin sind mit <image src="xyz.jpg"/> Bilder definiert. Lief jetzt 3 Wochen problemlos, bis der erste Dateinamen mit einem Sonderzeichen in Namen "xyzÜzyx.jpg". Daraus wird in InDesign dann "xyz¸zyx.jpg" und jetzt mag InDesign die XML dann nicht mehr importieren.

Jetzt versuche ich vorher die Dateinamen voher zu escapen. Funktioniert auch (siehe Skript). Nur bekomm ich's nicht hin, den escapten String wieder in das Attribut zu schreiben!

Dafür scheint es keine JavaScript-Funktion zu geben… zumindest finde ich nix im Objektmodell-Viewer.

Bitte um Hilfe!

Code
var _xmlFile = File.openDialog ("Bitte XML auswählen!"); 

_xmlFile.open("r");

var _text = _xmlFile.read();

_xmlFile.close();

var _importXML = XML (_text);

var myImages = _importXML.descendants ("image");

alert(myImages);

//~ Da hab ich dann alle <image/>-Tags aus meiner XML drin.

for (i = 0; i < myImages.length(); i++) {

var myFileName = myImages[i].attribute ("src");

alert(myFileName);

var myEscFileName = escape (myImages[i].attribute ("src"));

alert(myEscFileName);

//~  Tut auch noch!

//~ Ab hier weiß ich nimmer weiter :(

}

X

XML Attribut per JavaScript ändern

gfellenz
Beiträge gesamt: 120

26. Okt 2011, 14:05
Beitrag # 2 von 3
Beitrag ID: #483092
Bewertung:
(1759 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo,

bevor du weitermachst: Werden denn andere Sonderzeichen (z.B. im Textfluss) angezeigt?

Wenn nicht, hast du primär ein Encoding Problem. Du kannst vor dem open("r") z.B. mit:

Code
_xmlFile.encoding = "UTF8"; 


das Encoding einstellen. Im JavaScript Tools Guide (Hilfe des ExtendScriptToolkit) sind weitere Encodings zu finden.

Ansonsten würde dein Skript wie folgt aussehen:

Code
var _xmlFile = File.openDialog ("Bitte XML auswählen!");  
_xmlFile.open("r");
var _text = _xmlFile.read();
_xmlFile.close();

var _importXML = XML (_text);
var myImages = _importXML.descendants ("image");

for (i = 0; i < myImages.length(); i++) {
myImages[i][email protected] = escape (myImages[i][email protected]);
}

// Jetzt die Datei wieder schreiben.
_xmlFile.open("w");
// unicode signature, this is UTF16 but will convert to UTF8 "EF BB BF"
_xmlFile.write("\uFEFF");
_xmlFile.lineFeed = "unix";
_xmlFile.write('<?xml version="1.0" encoding="UTF-8"?>');
_xmlFile.write(_importXML.toXMLString());
_xmlFile.close();



als Antwort auf: [#483082]

XML Attribut per JavaScript ändern

madoho
Beiträge gesamt: 140

31. Okt 2011, 10:37
Beitrag # 3 von 3
Beitrag ID: #483436
Bewertung:
(1688 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo…
perfekt! Vielen Dank! So funktioniert's den Wert wieder zurück zu schreiben.


als Antwort auf: [#483092]

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
02.02.2023

Prozesse optimieren und effizient gestalten

Zürich
Donnerstag, 02. Feb. 2023, 08.00 - 10.00 Uhr

Digitalisierung, Webauftritt

Digitalisierung mitgestalten - Worauf kommt es an? Wie wichtig ist die Webseite? Webseite mit Word Press? Interne Prozesse optimieren

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: Birol Isik, E-Mailinfo AT bkcc DOT ch

https://digitalisierung-heute.ch/digitalisierung-informationstag-schweiz/

Veranstaltungen
01.03.2023 - 09.03.2023

Online
Mittwoch, 01. März 2023, 00.00 Uhr - Donnerstag, 09. März 2023, 00.00 Uhr

Online Webinar

Wie gehen wir mit diesen Veränderungen um? Was ist notwendig, damit wir die Digitalisierung im Unternehmen klappt? Veränderungsprozesse verstehen und entsprechend handeln Mitarbeiter als Botschafter Webseite mit WordPress erstellen SEA /SEO (Ads aufschalten)

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: B. Isik, E-Mailinfo AT snfa DOT ch

https://www.fernstudiumfitness.ch/digitalisierung-schweiz/