XSL将另一个命名空间中的元素添加到不带xmlns声明的输出

时间:2020-03-25 02:03:18

标签: xml xslt

我的输出XML中需要2个域中的元素,但我不希望输出中有任何xmnls属性。

我的XML是:

<p>Talking about stuff.</p>

我的XSL是:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:amazon="http://www.amazon.com" exclude-result-prefixes="amazon">
<xsl:output method="xml" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"/>

<!-- root -->
<xsl:template match="/">
    <!-- speak element -->
    <xsl:element name="speak">
        <amazon:domain name="conversational">
           <xsl:apply-templates/>
        </amazon:domain>
    </xsl:element>
</xsl:template>

<!-- Paragraph -->
<xsl:template match="*[local-name()='p' or local-name()='P']">
    <p><xsl:value-of select="normalize-space()"/></p>
</xsl:template>

</xsl:stylesheet>

我的结果是:

<speak>
   <amazon:domain xmlns:amazon="http://www.amazon.com" name="conversational">
      <p>Talking about stuff.</p>
   </amazon:domain>
</speak>

但是我需要这样:

<speak>
   <amazon:domain name="conversational">
      <p>Talking about stuff.</p>
   </amazon:domain>
</speak>

0 个答案:

没有答案
相关问题