これは私が何時間も働いてきたものですが、違った形ではありません。 Indesignで混合コンテンツにXMLループを使用するにはどうすればよいですか?
は、私は今、私の目標ではなく、単純な、すなわち、すべての要素を反復処理されるために、私はファイルを介してインポートする簡単なXML>インポートXML<?xml version="1.0" encoding="UTF-8"?>
<doc>
<page>
<p id="1">
hello <test /> alien world <br /> from space
</p>
<p id="2">
hello <test /> another alien world <br /> from space
</p>
</page>
</doc>
を持っています。これは、私がpタグ内の(混合された)コンテンツを繰り返し処理するまで、動作します。
// check version
if (parseInt (app.version) > 4 && app.documents.length > 0){
main();
}
function main() {
// get active document
var doc = app.activeDocument;
// get xml that has been imported
var xmlDocument = doc.xmlElements[0];
// get page elements
const page_elements = xmlDocument.evaluateXPathExpression('/doc/page')
// iterate over page elements
for(var x = 0; x < page_elements.length; x++) {
// within each page element look for p elements
const p_elements = page_elements[x].evaluateXPathExpression('./p');
for(var y = 0; y < p_elements.length; y++) {
var child_elements = p_elements[y].evaluateXPathExpression('./node()');
for (var z = 0; z < child_elements.length; z++) {
$.writeln(child_elements[z].markupTag.name);
$.writeln(child_elements[z].contents);
}
}
}
}
問題は、子アイテムの順序を覚えていないようです。
Extended Toolkitによると、 "hello test alien world br from space"の出力が "p hello world from space test br"です。
私はXmlElementsまたはXmlItemsの使用を含め、ここで利用可能であるドキュメント(http://jongware.mit.edu/idcs4js/index_XML%20Suite.html)に自分自身を基づかていますがありません勝つ
:-(と私は今では考えているかのう代替読むことですジャバスクリプト経由xmlファイル、その文字列からXMLオブジェクトを作成し、ここから先に進む。