我需要从
转换WSDL(使用XSLT)<wsdl:definitions
targetNamespace="a.b.c/s/Md"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:impl="a.b.c/s/Md"
xmlns:intf="a.b.c/s/Md"
xmlns:tns2="http://lang.java"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
...
.
..
.....
......
</wsdl:definitions>
要
<wsdl:definitions
targetNamespace="1.2.3/s/Md"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:impl="1.2.3/s/Md"
xmlns:intf="1.2.3/s/Md"
xmlns:tns2="http://lang.java"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
...
.
..
.....
......
</wsdl:definitions>
我们可以通过查找和替换来执行此操作吗?什么是最好的方法? 我尝试过复制选择,但它没有用。
我试过以下......
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns2="http://lang.java"
xmlns:intf="1.2.3/s/Md"
xmlns:impl="1.2.3/s/Md"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
targetNamespace="1.2.3/s/Md">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/*">
<xsl:element name="{name()}" namespace="{namespace-uri()}">
<xsl:copy-of select= "document('')/*/namespace::*[name()='intf']"/>
<xsl:copy-of select= "document('')/*/namespace::*[name()='impl']"/>
<xsl:copy-of select="@*"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
这对输出没有影响!