这个问题是有点老,但没有一个公认的答案,所以我会看到,如果我可以提供帮助。
用于创建新文档的代码在我看来就像刚刚创建一个新的空白文档。你正在导入的XML如何知道去哪里?有一件事可能会帮助您完成导入后,检查文档中XML的“结构”。
var myDocument = app.documents.add();
当我导入XML我不创建一个新的空白文档,我创建的具有预定结构,InDesign中知道在哪里放置您的模板中的每个XML节点的模板创建新文档。 Here是一个体面的参考,帮助您开始设置您的INDT文件。
var myDoc = app.open('//path/to/myTemplate/myTemplate.indt', OpenOption.OPEN_COPY);
// NOTE: I'm running against an InDesign server, if you're running against your ID GUI then you'll need an extra param on the app.open() call like in the following line
var myDoc = app.open('//path/to/myTemplate/myTemplate.indt', true, OpenOption.OPEN_COPY); // This is probably what you'll need to use
// The extra param for showingWindow should be true if running against the ID GUI, this feature is NOT available when executing against the ID server
我也把我的XML导入首选 - 你的可以与我不同 - 这样的InDesign知道做什么,说的相反,你的XML进口结构不匹配的XML节点的情况。例如,这里是我不时使用的xmlImportPreference集合之一。
with (myDoc.xmlImportPreferences)
{
allowTransform = false;
createLinkToXML = false;
ignoreUnmatchedIncoming = false;
ignoreWhitespace = true;
importCALSTables = false;
importStyle = XMLImportStyles.mergeImport;
importTextIntoTables = false;
importToSelected = false;
removeUnmatchedExisting = true;
repeatTextElements = true;
}
别的东西看起来与创建XML结构的INDT的帮助是使用DTD(文档类型定义)文件。 Here是帮助InDesign和XML的另一个很好的参考,它也详细介绍了DTD文件。一个简单的DTD文件的例子可能是这样的。
<!ELEMENT Root (Root*)>
<!ELEMENT Customer(name, Address*)>
<!ELEMENT name(#PCDATA)>
<!ELEMENT Address(street, city, state, zip)>
<!ELEMENT street(#PCDATA)>
<!ELEMENT city(#PCDATA)>
<!ELEMENT state(#PCDATA)>
<!ELEMENT zip(#PCDATA)>
在XML中,将代表这样的:
<Root>
<Customer>
<name>Billy Bob</name>
<Address>
<street>123 Test Ave</street>
<city>Testville</city>
<state>IA</state>
<zip>12345</zip>
</Address>
</Customer>
</Root>
我希望这有助于有人指出了正确的方向与ID和XML挣扎。有时候它可能会非常棘手和激烈。
我做了一些漫谈,如果有人发现这有帮助,但仍然无法完成它的工作,我可以详细阐述一个具体问题,所有你需要做的是问! ;)快乐编码!
即便如此,没有任何反应。文档已创建,我浏览保存XML文件的文件夹,然后在没有任何内容导入的情况下停止。 –