我已经尝试了几个小时来在InDesign中使用项目符号列表,其中每个项目都在自己的行上,而不会在导入后调整格式。
这是我必须使用的XML结构的一个例子:
<?xml version="1.0" encoding="UTF-8"?>
<Root>
<list>
<item>1</item>
<item>2</item>
<item>3</item>
</list>
</Root>
我为子弹设置了段落样式,并在<item>
标签上使用它,但在导入后它们显示为内联:
如何在不导入导入后手动输入的情况下让每个项目显示在新行上?这将成为包含数千行XML的更大文档的一部分,我希望自动化该过程。
答案 0 :(得分:1)
在XML中,忽略节点之间的新行。来自数据库的大多数XML导出在节点之间没有新行。
InDesign确实关心新行,因此当您将XML放入文本框架时,所有三个项目节点都会呈现为单个段落。
项目符号列表是段落样式的设置,您需要在列表节点中的每个项目节点之前插入换行符号
您可以调整XML或将CR添加到XSLT。我通常会添加
在我的子弹列表项目之后的。
答案 1 :(得分:1)
这是我的XSLT解决方案:
<?xml version="1.0" encoding="iso-8859-1" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:template match="item[position() != 1 and not(descendant::value[not(*)][normalize-space()])]">
<xsl:copy ><xsl:text>
</xsl:text><xsl:apply-templates /></xsl:copy>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy select=".">
<xsl:copy-of select="@*" />
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>