我一直在尝试使用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>
有人可以帮我解决这个问题吗? 预先感谢。
答案 0 :(得分:1)
您的soap en SOAP-ENV名称空间是相同的,因此唯一更改的是删除了第二个前缀。本质上,您的消息是相同的,前缀只是名称空间的占位符,并且同一名称空间不需要两个前缀。
基本上,第二个前缀是不必要的,并由转换器删除。