如何在没有命名空间的情况下复制动态xml节点?

时间:2016-12-12 17:22:47

标签: xml xslt xslt-1.0

xml下面的任何实例都有一个动态元素。但是对于这个例子,我想要复制的字段是' getClassName'不包括名称实例' ser'。仅供参考我使用xml 1.0和XSLT进行转换。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://sample.com/">
    <soapenv:Header/>
    <soapenv:Body>
        <ser:getClassNames>
            <credential>
                <appUserID>d</appUserID>
                <clientName>ECSDEVTEAM</clientName>
                <repoName>HWY</repoName>
            </credential>
        </ser:getClassNames>
    </soapenv:Body>
</soapenv:Envelope>

示例输出

<OperationName>getClassName</OperationName>

1 个答案:

答案 0 :(得分:0)

我大多在猜这里,但应用以下样式表:

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
exclude-result-prefixes="soapenv">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

<xsl:template match="/soapenv:Envelope ">
    <OperationName>
        <xsl:value-of select="local-name(soapenv:Body/*)"/>
    </OperationName>
</xsl:template>

</xsl:stylesheet>
输入的

将返回:

<?xml version="1.0" encoding="UTF-8"?>
<OperationName>getClassNames</OperationName>