【发布时间】:2019-12-05 18:19:47
【问题描述】:
我们有一个复杂的 Adobe LiveCycle XDP (XFA) 用于带有 XML 数据模型的评估员申请表(默认一个,没什么特别的)。还有另一个 XDP 具有相同的 Application Form,相同的布局,但具有不同的模型和 XML 结构。第二种形式的XML结构是基于我不熟悉的格式,但我能理解其中的内容。
第一个 XML 是普通的 XML,直截了当。
第二个 XML 有多个嵌套部分,字段名称在标签元素的属性中指定。图片在附件部分中指定,并且是来自相关标签元素的引用。
以下是第一个 XML 的示例:
<app_rep1>
<NEW_primaryform>Some-primary-form</NEW_primaryform>
<NEW_TITLE_PHOTO>SamplePhotoLabel1</NEW_TITLE_PHOTO>
<NEW_CITY>Toronto</NEW_CITY>
<NEW_Stage>Stage Value</NEW_Stage>
<NEW_GS_AGE>23</NEW_GS_AGE>
<NEW_POOL_X>Nice Pool</NEW_POOL_X><NEW_PHOTO1>/9j/4AAQSkZJRgABAAEASABIAAD//gAfTEVBRCBUZWNobm9sb2dpZXMgSW5jLiBWMS4wMQD/2wCE
bla...bla...bla
</NEW_PHOTO1>
</app_rep1>
以下是第二个 XML 的示例:
<app_rep2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.1">
<appraisal>
<configuration>
<primaryform>Some-primary-form</primaryform>
<versioninfo>
<acifileversion>123</acifileversion>
<collectionversion>1.2.3.4</collectionversion>
<collection>Report Pro</collection>
<platform>Desktop Platform</platform>
</versioninfo>
</configuration>
<data>
<form name="photo1" primary="false">
<section type="other" number="0" name="section_name1">
<tag name="TITLE_PHOTO">SamplePhotoLabel1</tag>
<tag name="LINE_PHOTO">SamplePhotoDescription1</tag>
</section>
<tag name="PHOTO1">../../../attachments/attachment[@key='267463fa-0073-4c10-83d6-fd8141641b72']</tag>
</form>
<form name="Some-primary-form" primary="true">
<section type="other" number="0" name="OPTIONS">
<tag name="OPT_TYPE_OF_APPRAISAL">Appraisal Type Value</tag>
</section>
<section type="subject" number="0" name="SUBJECT">
<tag name="CITY">Toronto</tag>
<tag name="STATE">Stage Value</tag>
<tag name="GS_AGE">23</tag>
<tag name="POOL_X">Nice Pool</tag>
</section>
</form>
</data>
<attachments>
<attachment type="photo" label="" key="267463fa-0073-4c10-83d6-fd8141641b72">
<image>
<binary format="jpeg">/9j/4AAQSkZJRgABAAEASABIAAD//gAfTEVBRCBUZWNobm9sb2dpZXMgSW5jLiBWMS4wMQD/2wCE
bla...bla...bla
</binary>
</image>
</attachment>
</attachments>
</appraisal>
</app_rep2>
如您所见,我想将第二个 XML 转换为看起来像第一个 XML。
我想我需要先编写 XSLT。然后,我需要将第二个 XML 导入到第一个 XDP 中,并在导入时应用 XSLT。
我的想法是否正确?
您能帮我实现目标吗?我不确定该怎么做。
问题:
如何开发 XSLT?
如何在将第二个 XML 与第一个 XDP 合并时应用 XSLT?除了使用 Acrobat,我还能做什么?如何使用 Adobe LiveCycle Process Management 做到这一点?
如何执行字段名称从 XML 1 到 XML 2 的映射?有1000多个字段。我可以在 Excel 文件(field_name_1,field_name_2)中准备对列表,但是如何使用列表作为输入来应用查找/替换?因此,第 1 步将使用错误的字段名称应用转换,然后第 2 步将应用查找/替换。
任何帮助将不胜感激。
谢谢, 塔雷克
【问题讨论】:
-
我可以做映射,唯一的问题是遍历照片元素,谁的XPath是另一个元素的值。见
tag name="PHOTO1"。你能帮忙吗? -
用文字来解决......我想要一个变量,它是 @key='[ 之后和 '[ 之前的值,然后找到其祖先附件具有该 @key 属性值的二进制文件与该变量相同。但是如果你需要导航附件/附件,因为它可能是 foo/bat,那么也写。
-
对不起,我没听懂你说的。我刚刚意识到这是 XSL 2.0 中的一个问题。这与动态评估 XPath 有关。您需要使用库。我找到了一对,但我无法实现它们。我尝试使用 freeformatter.com/xsl-transformer.html 和 np++,但它们都不起作用。请参阅此处的示例:blogs.it.ox.ac.uk/jamesc/2009/06/05/…
标签: xml xslt transformation xfa xdp-pdf