【发布时间】:2011-05-31 03:40:44
【问题描述】:
我是 XML、XSLT 和 SOAP 的新手,我想知道是否可以转换这个 XML 文件
<?xml version="1.0" encoding="UTF-8"?>
<SEARCHREQUEST>
<PSSSEARCHPARAM1>Database name</PSSSEARCHPARAM1>
<PSSSEARCHPARAM2>Description</PSSSEARCHPARAM2>
<PSSSEARCHPARAM3>Document number</PSSSEARCHPARAM3>
<PSSSEARCHPARAM4>Belong To</PSSSEARCHPARAM4>
</SEARCHREQUEST>
进入这个 SOAP 请求
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Header/>
<soap:Body>
<wor:SearchDocuments xmlns:wor="http://worksite.imanage.com">
<wor:Databases>
<wor:string>Database name</wor:string>
</wor:Databases>
<wor:ProfileSearchParameters>
<wor:ProfileSearchParameter>
<wor:AttributeID>imProfileDescription</wor:AttributeID>
<wor:SearchValue>Description</wor:SearchValue>
</wor:ProfileSearchParameter>
<wor:ProfileSearchParameter>
<wor:AttributeID>imProfileCustom3</wor:AttributeID>
<wor:SearchValue>Belong To</wor:SearchValue>
</wor:ProfileSearchParameter>
<wor:ProfileSearchParameter>
<wor:AttributeID>imProfileCustom4</wor:AttributeID>
<wor:SearchValue>APP, 20</wor:SearchValue>
</wor:ProfileSearchParameter>
<wor:ProfileSearchParameter>
<wor:AttributeID>imProfileDocNum</wor:AttributeID>
<wor:SearchValue>Document number</wor:SearchValue>
</wor:ProfileSearchParameter>
</wor:ProfileSearchParameters>
<wor:SearchEmail>imSearchDocumentsOnly</wor:SearchEmail>
<wor:OutputMask>Profile</wor:OutputMask>
<wor:OutputProfile>
<!-- Displays the document number-->
<wor:imProfileAttributeID>imProfileDocNum</wor:imProfileAttributeID>
<!-- Displays the document description/title-->
<wor:imProfileAttributeID>imProfileDescription</wor:imProfileAttributeID>
<!--Displays the document version-->
<wor:imProfileAttributeID>imProfileVersion</wor:imProfileAttributeID>
<!--Displays the standard id-->
<wor:imProfileAttributeID>imProfileCustom16</wor:imProfileAttributeID>
<!--Display the "Belong to" field-->
<wor:imProfileAttributeID>imProfileCustom3</wor:imProfileAttributeID>
<!--Displays the database name-->
<wor:imProfileAttributeID>imProfileDatabase</wor:imProfileAttributeID>
<!--Displays the document extension-->
<wor:imProfileAttributeID>imProfileExtension</wor:imProfileAttributeID>
</wor:OutputProfile>
</wor:SearchDocuments>
</soap:Body>
</soap:Envelope>
仅使用 XSLT。如果可能的话,你能否指出一些例子来说明如何做到这一点。 Michael Kay 的“XSLT 2.0 and XPath 2.0 Programmer's Reference (4th ed.)”有很多关于如何将 XML 转换为 HTML 的示例,但没有关于 XML 到 SOAP 转换的示例。我能找到的最接近的东西在这里
http://wiki.netbeans.org/TransformingSOAPMessagesWithXSLT
它显示了如何转换 SOAP 请求,这不是我需要的。提前感谢您的帮助。
【问题讨论】:
-
我觉得应该很简单,只需要在transform中声明正确的命名空间即可。您是否只是在搜索生成 SOP 请求的转换,然后从输入 PSSSEARCHPARAM 中获取一些值?
-
这正是我想要做的。
-
在我的回答中,我将向您展示如何从您的搜索请求中获取值并将其放入各种
ProfileSearchParameter。