javascript - 如何使用 indesign 脚本从 textFrame 段落中找出 XML 的父元素
问题描述
我有用脚本标签标记的 TextFrames,并且文本框架内的段落有一个段落标签,并且一些段落在 XML 中组合在一起并给出了一个标签名称。我正在尝试将脚本标签与文档的 XML 结构相匹配,以了解需要将哪个段落放置在哪个特定的 TextFrame 中,我正在遍历所有段落,然后搜索父 XML 元素,但它反过来给了我文档根目录。
示例代码:
// to get the parent markup tag name
TextFrame.paragraphs[2].associatedXMLElements[0].parent.markupTag.name
// this works perfectly for to get the markup for a given paragraph
TextFrame.paragraphs[2].associatedXMLElements[0].markupTag.name
段落和相关XMLElements 的文档都有父级来提取标记标签名称
我不确定我是否遗漏了什么,
我确实尝试了Glue Code.jsx来提取 XML 标记,但我想从文本框架的段落中获取它,因为胶水代码对带有文本框架的页面布局没有任何影响,它将提供整个结构.
例如:
- Chapter
- C1
- C2
- C3
- C3-1
- C3-2
- C4
- C5
假设所有这些段落都存在于一个名为TextFrame
No iam 的 textFrame 中,将所有段落作为
for (eachP = 0; eachP < TextFrame.paragraphs.length; eachP++) {
allAssociatedXMLElements = TextFrame.paragraphs[eachP].associatedXMLElements.length
for (eachAsXML = 0; eachAsXML < allAssociatedXMLElements; eachAsXML++) {
$.writeln(TextFrame.paragraphs[eachP].associatedXMLElements[eachAsXML].markupTag.name)
}
$.witeln(" -- ")
}
这给了我
Chapter
C1
--
Chapter
C2
--
Chapter
--
C3
C3-2
--
Chapter
C4
--
Chapter
C5
XML Structure
<C1>Content1</C1>¶
<C2>Content2</C2>¶
<C3>
<C3-1>Content5</C3-1>¶
<C3-2>Content6</C3-2>¶
</C3>
<C4>Content3</C4>¶
<C5>Content4</C5>¶
不知道为什么它没有得到根C3-1
,如果我在某处做错了,请告诉我。
解决方案
推荐阅读
- c# - c# 按对象列表排序
- c# - 无法将图像文件上传到 Firebase 存储 - Unity C#
- java - How to test json response returned by rest controller endpoint
- c# - 使用翻译功能跳转的问题 [Unity 2D]
- python - 在多个 pptx 文件中查找关键字
- c# - 规则重写模块
- build - 是否可以使用 Fastlane 从特定分支或标签构建?
- php - 我试图找到如何从我的每个自定义帖子类型中提取对象(WP_Post)#,以便我可以使用 ACF get_fields() 函数
- python - 在 Python 3 上向 App Engine 添加预热请求
- javascript - Pushing multiple items into an array within an instance of a class