我想从 XML 文件中删除所有命名空间并找到我的解决方案,如下所示:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" method="xml" encoding="utf-8" omit-xml-declaration="yes"/>
<xsl:template match="*">
<xsl:element name="{local-name()}">
<xsl:apply-templates select="@* | node()"/>
</xsl:element>
</xsl:template>
<!-- template to copy attributes -->
<xsl:template match="@*">
<xsl:attribute name="{local-name()}">
<xsl:value-of select="."/>
</xsl:attribute>
</xsl:template>
<!-- template to copy the rest of the nodes -->
<xsl:template match="comment() | text() | processing-instruction()">
<xsl:copy/>
</xsl:template>
</xsl:stylesheet>
如何在此 xslt 中使用此 XML 进行其他编辑操作(创建新标签、搜索节点),只需将新的 xslt 代码添加到前面的示例中?我不想创建两个 xslt 文件,用一个删除命名空间并用另一个 xslt 文件进行编辑操作。
编辑。例如,我有这个 xml 源:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns2:completeProductionPlan xmlns="http://ServiceManagement/OIS_Services_v01.00/common"
xmlns:ns2="http://ServiceManagement/TechnicalOrderManagement/ProductionFulfillment_v01.00/types">
<ns2:messageID>
<value>9133235059913398501_9133235059913398860</value>
</ns2:messageID>
</ns2:completeProductionPlan>
</soapenv:Body>
</soapenv:Envelope>
并想得到这个:
<?xml version="1.0" encoding="UTF-8"?>
<CompletePP >
<MessageId>9133235059913398501_9133235059913398860</MessageId>
</CompletePP>
以及我想在一个 xslt 文件中执行的所有 xslt 操作