我有以下输入xml:
<DST>
<PQ>
<hostAddress>10.193.245.27</hostAddress>
</PQ>
<AWDSRVRunStoredProcedure xmlns:lxslt="http://xml.apache.org/xslt">
<hostAddress>10.193.245.27</hostAddress>
<storedprocedures>storedprocedurestwo</storedprocedures>
</AWDSRVRunStoredProcedure>
<DST>
<test>I want this</test>
<PQ>
<hostAddress>10.193.245.27</hostAddress>
</PQ>
<AWDSRVRunStoredProcedure xmlns:lxslt="http://xml.apache.org/xslt">
<hostAddress>10.193.245.27</hostAddress>
<storedprocedures>storedproceduresone</storedprocedures>
</AWDSRVRunStoredProcedure>
<PQClaimSystemRequest>
<request>request</request>
</PQClaimSystemRequest>
</DST>
</DST>
我想删除第一个根节点<DST>
,除了第二个<DST>
之外,它是子节点。所以,我的结果xml应如下所示。
<DST>
<test>I want this</test>
<PQ>
<hostAddress>10.193.245.27</hostAddress>
</PQ>
<AWDSRVRunStoredProcedure xmlns:lxslt="http://xml.apache.org/xslt">
<hostAddress>10.193.245.27</hostAddress>
<storedprocedures>storedproceduresone</storedprocedures>
</AWDSRVRunStoredProcedure>
<PQClaimSystemRequest>
<request>request</request>
</PQClaimSystemRequest>
</DST>
答案 0 :(得分:1)
您可以尝试使用以下模板:
<xsl:template match="DST[DST]">
<xsl:copy-of select="DST"/>
</xsl:template>
或者,如果规则适用于所有元素(不是特定于名为DST
的元素):
<xsl:template match="*[*/name()=name()]">
<xsl:copy-of select="*[name()=current()/name()]"/>
</xsl:template>