我一直在尝试使用 XSL 文件生成 XML。但不知何故,SOAP 标头标记被另一个标记覆盖。
我的 XSL 文件看起来像:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<xsl:output method="xml" omit-xml-declaration="no" encoding="utf-8"
indent="yes" />
<xsl:template match="/">
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<!-- SOME DATA -->
</SOAP-ENV:Header>
<soap:Body>
<!-- SOME DATA -->
</soap:Body>
</soap:Envelope>
</xsl:template>
</xsl:stylesheet>
输出 XML 生成为:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<!--SOME DATA-->
</soap:Header>
<soap:Body>
<!--SOME DATA-->
</soap:Body>
</soap:Envelope>
而我希望它看起来像:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<!--SOME DATA-->
</SOAP-ENV:Header>
<soap:Body>
<!--SOME DATA-->
</soap:Body>
</soap:Envelope>
有人可以帮我解决这个问题吗?提前谢谢。
您的 soap en SOAP-ENV 命名空间是相同的,因此唯一更改的是已删除第二个前缀。从本质上讲,您的消息是相同的,前缀只是命名空间的占位符,并且您不需要同一命名空间的两个前缀。
基本上第二个前缀是不必要的,被变压器删除。