我尝试使用XSL将SOAP XML转换为XML,但是我已经看了太久了,不能找出我是怎么出错的。有什么想法吗?
SOAP XML
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="https://XXX.disclosures.co.uk/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:InitiateApplicationResponse>
<InitiateApplicationResponse>
<Application>
<ApplicantReferenceNumber>580064065</ApplicantReferenceNumber>
<Forename>SEASHELLS</Forename>
<Surname>OSEAS</Surname>
<InitiateStatus>SUCCESS</InitiateStatus>
<Error />
<StatusCode>202</StatusCode>
<StatusDescription>e-Invitation Sent</StatusDescription>
<TransactionReferenceNumber>202201310003</TransactionReferenceNumber>
</Application>
</InitiateApplicationResponse>
</ns1:InitiateApplicationResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
XSL语言
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="1.0">
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="https://XXX.disclosures.co.uk/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<xsl:template match="ns1:InitiateApplicationResponse">
<xsl:for-each select="Application">
<EXCHANGE>
<SPD>
<SPD.SRS>
<SPD_STUC.SPD.SRS>
<xsl:value-of select="ApplicantReferenceNumber" />
</SPD_STUC.SPD.SRS>
<SPD_SEQN.SPD.SRS>CRB</SPD_SEQN.SPD.SRS>
<SPD_UDF1.SPD.SRS>
<xsl:value-of select="TransactionReferenceNumber" />
</SPD_UDF1.SPD.SRS>
</SPD.SRS>
</SPD>
</EXCHANGE>
</xsl:for-each>
</xsl:template>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</xsl:stylesheet>
正在尝试使用上述SOAP和XSL转换为此XML
<?xml version="1.0" encoding="UTF-8"?>
<EXCHANGE>
<SPD>
<SPD.SRS>
<SPD_STUC.SPD.SRS>580064065</SPD_STUC.SPD.SRS>
<SPD_SEQN.SPD.SRS>CRB</SPD_SEQN.SPD.SRS>
<SPD_UDF1.SPD.SRS>202201310003</SPD_UDF1.SPD.SRS>
</SPD.SRS>
</SPD>
</EXCHANGE>
2条答案
按热度按时间wkyowqbh1#
请尝试以下XSLT。
XSLT格式
输出XML
wztqucjr2#
如果您的消息中有更多内容,而不是SOAP-ENV:Body,并且想知道如何使用xsl处理名称空间,您可能需要以下内容: