以下是输入:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<CreateInterfaceRequest Destination="KISTA" CreatedBy="ONETM">
<Source_ObjectID>TEST24</Source_ObjectID>
</CreateInterfaceRequest>
</s:Body>
</s:Envelope>
我希望输出
<CreateInterfaceRequest> /* this needs to be as it is
<Source_ObjectID>TEST24</Source_ObjectID>
</CreateInterfaceRequest>
使用SOAP附件。删除(Destination =“KISTA”CreatedBy =“ONETM”)
我使用了这个XSLT模板匹配代码
<xsl:template match="CreateInterfaceRequest/*">
<CreateInterfaceRequest>
<xsl:apply-templates/>
</CreateInterfaceRequest>
<xsl:template>
但是它给出了错误
模板匹配无法在BODY中声明
答案 0 :(得分:0)
此模板是实现此目的的一种可能性。它只删除Source_ObjectID
节点的名称空间并复制所有CreateInterfaceRequest
个节点(并删除其所有属性)。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" />
<xsl:template match="//CreateInterfaceRequest">
<CreateInterfaceRequest>
<xsl:apply-templates select="*" />
</CreateInterfaceRequest>
</xsl:template>
<xsl:template match="Source_ObjectID">
<xsl:element name="Source_ObjectID" namespace="">
<xsl:copy-of select="node()|@*" />
</xsl:element>
</xsl:template>
</xsl:stylesheet>
<强>输出:强>
<?xml version="1.0"?>
<CreateInterfaceRequest>
<Source_ObjectID>TEST24</Source_ObjectID>
</CreateInterfaceRequest>