我正在通過 indesign 腳本讀取 xml 并創建文本框。鑒于此 xml:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<project name="IPS300980XX_NEW" pagecount="50">
<styles>
<style nome="xxx" font="Arial" fontsize="10" bold="2" center="2" />
<style nome="yyy" font="Times" fontsize="24" bold="1" center="1" />
<style nome="zzzz" font="Helvetica" fontsize="22" bold="2" center="1" />
</styles>
</project>
</root>
我正在嘗試遍歷“樣式”節點,但沒有成功。我正在使用的代碼如下(但我嘗試了 xmlelements、children、item 等的幾種組合:-(沒有成功)。
“myxml”是剛剛打開的 xml 檔案。除了“getTheStyle”(以及“test”)之外,每個變數都有預期的值。
function creastili(){
var styles = myxml.project.styles;
var list = styles.child("style");
var getTheStyle = "";
for(var i = 0; i < list.length(); i ){
getTheStyle = list[i];
test = getTheStyle.toString();
//getTheStyle is always empty.
}
}
任何幫助將非常感激!非常感謝。
uj5u.com熱心網友回復:
也許您必須使用toXMLString()而不是toString().
這段代碼對我有用:
var xml = '''<?xml version="1.0" encoding="UTF-8"?>
<root>
<project name="IPS300980XX_NEW" pagecount="50">
<styles>
<style nome="xxx" font="Arial" fontsize="10" bold="2" center="2" />
<style nome="yyy" font="Times" fontsize="24" bold="1" center="1" />
<style nome="zzzz" font="Helvetica" fontsize="22" bold="2" center="1" />
</styles>
</project>
</root>''';
function creastili(xml) {
var root = new XML(xml); // native Extendscript XML parser
var list = root.project.styles.children();
for(var i = 0; i < list.length(); i ){
var getTheStyle = list[i];
var test = getTheStyle.toXMLString();
alert(test);
}
}
creastili(xml);

您可以通過以下方式獲取“樣式”的屬性:
var root = new XML(xml);
var style = root.project.styles.children()[0];
var name = style.@nome;
var font = style.@font;
var size = style.@fontsize;
// etc
alert([name, font, size].join('\n'));
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/490159.html
標籤:javascript xml 土坯 土坯设计 扩展脚本
上一篇:SaxParseException元素型別“hr”必須由匹配的結束標記“</hr>”終止。使用jaxb讀取xml時
