【发布时间】:2015-09-01 06:09:05
【问题描述】:
我一直坚持将 SOAP 请求转换为可以上传到 Filemaker 数据库的可用 XML 文件。我一直在寻找几天,但我找不到有效的解决方案。我已经复制了下面的 SOAP 请求示例,以及下面的所需输出。任何帮助将不胜感激!
到目前为止,我所做的只是使用以下 XSL 生成内容:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns ="http://www.somedomainename.com">
<xsl:template match="@*|comment()|processing-instruction()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
SOAP 请求:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<ns0:course_application_list xmlns:ns0="http://au.edu.sydney/schemas/studentcoursemanagement/courseppplication/courseapplicationdetails/1.0">
<ns0:course_application>
<ns0:application_form_seqno>01</ns0:application_form_seqno>
<ns0:course_application_seqno>01</ns0:course_application_seqno>
<ns0:application_course>MAEDUCAT-03</ns0:application_course>
<ns0:commence_year>2014</ns0:commence_year>
<ns0:sid>11223344</ns0:sid>
<ns0:application_type>I</ns0:application_type>
<ns0:application_status>AF</ns0:application_status>
<ns0:decision1>U</ns0:decision1>
</ns0:course_application>
</ns0:course_application_list>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
所需的输出 XML:
<course_application_list>
<course_application>
<application_form_seqno>01</application_form_seqno>
<course_application_seqno>01</course_application_seqno>
<application_course>MAEDUCAT-03</application_course>
<commence_year>2014</commence_year>
<sid>11223344</sid>
<application_type>I</application_type>
<application_status>AF</application_status>
<decision1>U</decision1>
</course_application>
</course_application_list>
【问题讨论】:
-
"我已经找了好几天了,但找不到有效的解决方案。" 您是否考虑过花一两个小时实际学习 XSLT?复制和粘贴不会让你走得太远。 -- “一个可用的 XML 文件,我可以上传到 Filemaker 数据库中。” 不知道“上传”是什么意思。为了将 XML 导入到 Filemaker,您的输出必须符合 Filemaker 的 FMPXMLRESULT 架构 - 您向我们展示的输出远非如此。
-
是的,我一直在努力。当 XML 包含一个 SOAP 信封和名称空间时,这是一个挑战。我已经找到了在 XML 中操作其中任何一个的方法,但不是在将它们组合在一起时。我是一名业务分析师——我以前编程过,但我不是核心技术人员。我正在尝试这样做,因为没有可用的开发人员。
-
是的,你是对的,它需要符合架构。我认为如果我真的可以对 XML 进行任何更改就可以了。我所能做的就是提取属性中的数据。
-
您不需要对 XML 进行任何更改。这就是 XSLT 所做的:它将给定的 XML 转换为目标模式。您只需要更改样式表即可生成正确的输出。请参阅此处了解简介:web.archive.org/web/20101013013430/http://my.advisor.com/doc/… -- "没有可用的开发人员" 请原谅?
-
我已将您的问题回滚为原始形式,因为您已经 - 非常正确 - 发布了 new question with the new requirements。