导入SMGL至InDesign后,嵌套XML标签需设不同段落样式的问题
解决InDesign导入XML时嵌套标签的段落样式问题
嘿,这个嵌套标签的样式匹配问题我太熟了,InDesign其实专门给这种场景做了上下文选择器的功能,完美解决同名标签不同层级的样式区分需求,一步步来:
首先先明确你的XML结构(方便对照):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Root> <ESSAY> <TITEL>My Headline1 - somehow similar to h1</TITEL> <ABSTRACT> <TITEL>My Headline2 - somehow similar to h2</TITEL> </ABSTRACT> </ESSAY> </Root>
1. 先准备好目标段落样式
先在InDesign里创建你需要的两个段落样式:
Headline1:对应外层<ESSAY>下的<TITEL>(h1级别)Headline2:对应<ABSTRACT>里的嵌套<TITEL>(h2级别)
2. 导入你的XML文件
打开XML面板(Window > Utilities > XML),点击面板右上角的菜单,选择Import XML,导入你修改好的XML文件(已调整首行编码和解码实体的版本)。导入后你能在面板里看到完整的XML层级结构。
3. 创建带上下文规则的XML样式
打开XML Styles面板(Window > Styles > XML Styles),点击面板底部的Create New XML Style按钮,分别创建两个样式:
第一个XML样式(匹配外层)
- 命名:
Essay-Titel - 标签:选择
TITEL - 上下文:点击Edit,输入
ESSAY > TITEL(意思是只匹配<ESSAY>的直接子节点<TITEL>) - 关联段落样式:选择你创建的
Headline1
第二个XML样式(匹配嵌套)
- 命名:
Abstract-Titel - 标签:同样选择
TITEL - 上下文:输入
ESSAY > ABSTRACT > TITEL(精准匹配<ABSTRACT>下的<TITEL>) - 关联段落样式:选择
Headline2
4. 批量应用XML样式
在XML面板里选中根节点<Root>,然后回到XML Styles面板,点击面板底部的Apply Styles按钮。这时候你会看到两个<TITEL>标签自动应用了对应的段落样式,完全区分开了!
额外小提示
- 如果你的XML结构有更多层级变化,只需要调整上下文选择器的路径就行,比如更深的嵌套可以写成
ESSAY > ABSTRACT > SUBSECTION > TITEL - 导入XML时尽量不要勾选Merge Imported XML,避免原有结构被打乱,影响样式匹配
内容的提问来源于stack exchange,提问作者AndyWizz
相关产品推荐
相关产品推荐

