.idms ファイルの xml 属性を変更/更新する必要があります。アクションスクリプトを使用。私はそれを行うために以下のアプローチを使用しています。
protected function windowedapplication1_creationCompleteHandler(event:FlexEvent):void
{
var file:File = File.desktopDirectory.resolvePath('myInputFile.xml');
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.READ);// doesn't read processing instrunction
var xml:XML = new XML(fileStream.readUTFBytes(fileStream.bytesAvailable));
fileStream.close();
var writeStream:FileStream = new FileStream();
writeStream.open(file, FileMode.WRITE);
for each(var node:XML in xml.descendants("*"))
{
if(node.localName() == "Link")
{
var linkfile:String=node.@LinkResourceURI = "file:/Shared/Logos/Bk.ai";
}
}
writeStream.writeUTFBytes(String(xml));
writeStream.close();
}
上記のコードの問題は、xml ファイルの上にある処理命令を読み取らないことです。その結果、xml ファイルを書き込んだ後、ファイルが InDesign スニペット ファイルとして読み取られなくなります。処理命令は次のとおりです。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
新しいファイルで処理命令を読み取る方法を理解するのを手伝ってくれる人はいますか?
素早い返信ありがとうございます。このプロパティをフラッシュとして作成したにもかかわらず、処理命令を無視し続けています。
var file:File = File.desktopDirectory.resolvePath('031413115849909.idms');
var fileStream:FileStream = new FileStream();
XML.ignoreProcessingInstructions = false; //newly added
fileStream.open(file, FileMode.READ);
var xml:XML = new XML(fileStream.readUTFBytes(fileStream.bytesAvailable));
fileStream.close();