当我们将内容作为故事元素在inDesign中流动以应用段落/字符样式时,我们如何识别内联xml元素?

时间:2015-03-24 11:20:30

标签: xml adobe-indesign

我们有一个indesign Document(.indd),其中我们有几个主扩展,我们需要导入一个xml并将内容放在相应的主扩展中。以下是我们导入的xml示例: - < / p>

<?xml version="1.0" encoding="UTF-8"?> <DOCS> <texto> <p_pri>La flexibilidad laboral es un tema recurrente en las últimas décadas, como camino a seguir, junto con la seguridad en el empleo, para resolver los problemas acuciantes de las relaciones laborales. Hace ya algún tiempo que un sector doctrinal afirmaba que había que «encontrar la dosis justa, el punto medio entre flexibilidad y rigidez, entre paternalismo social y eficacia económica»@footnotes_begin@vid. <autor>Sagardoy hgfhfg</autor>, J. A.: «Hacia una concepción positiva...», op. cit., p. 287. J. A.: «Hacia una concepción positiva de la flexibilidad laboral», en AA.VV.: <en-origen_cursiva>Estudios ofrecidos por los catedráticos españoles de Derecho del Trabajo al profesor Manuel Alonso Olea,</en-origen_cursiva> MTSS, Madrid, 1990, p. 267.@footnotes_end@.</p_pri> </texto> </DOCS>

这里我们尝试在autor标签上应用字符样式,我们无法这样做。请找到脚本:

        var pageWidth = null;
        var pageHeight = null;
        var contentArray =[];
        var txf = null;
        var baseParagraphStyle = "";
        main();
        function main(){

                        app.scriptPreferences.userInteractionLevel= UserInteractionLevels.neverInteract; 
                    document = app.open(File("D:/TestImmediate/styleImplementation.indd"));
                    with(document){
                       importXML("D:/TestImmediate/TestStyle.xml");
                       var m_rootElement = document.xmlElements.item(0);
                       }
                var pageCount = 0;
                var m_xmlElement = m_rootElement;
                pageHeight = document.documentPreferences.pageHeight;
                pageWidth = document.documentPreferences.pageWidth;
                populateArray(m_rootElement);
                 processRoot(contentArray);
                }        
         function processRoot(contentArray){
            txf = document.pages.item(document.pages.length-1).textFrames.add({geometricBounds:[5,4,pageHeight,pageWidth]});
             story = txf.parentStory;   
                 for (var i = 0; i < contentArray.length; i++)
                {  if(contentArray[i].markupTag.name.toLowerCase() == "p_pri"){
                         story.insertionPoints[-1].pointSize = 12;
                         story.insertionPoints[-1].contents = contentArray[i].contents;
                         contentArray[i].xmlElements.itemByName("autor").texts.item(0).applyCharacterStyle(document.characterStyles.item("autor"));
                }
             }

         }
        function populateArray(m_rootElement){
                var m_xmlElement = m_rootElement;
                if(m_rootElement.markupTag.name.toLowerCase() == "p_pri"){
                 var len = m_rootElement.xmlElements.length;
                    contentArray.push(m_rootElement);
                    }
                      for (var m_element = 0; m_element < m_xmlElement.xmlElements.length; m_element++ ){   
                       var m_xmlChildElement = m_xmlElement.xmlElements.item(m_element);
                     populateArray (m_xmlChildElement);
                    }
                }

1 个答案:

答案 0 :(得分:0)

你这里的东西太复杂了。您可以使用aid:pstyle和aid:cstyle属性(注意添加辅助命名空间)轻松添加样式,同时注入XML。

您还可以通过UI(将样式映射到标记)或通过脚本在更远的阶段添加样式。对于后者,您只需使用xmlExportmaps而不是使用字符。