如何在xml根标记中添加名称空间

时间:2019-01-14 07:36:36

标签: xml xslt

这是我要在header标记中添加名称空间的最少代码。  这是我的输入XML。任何人都可以帮助我。

<?xml version="1.0"?>
<R>
<M>
<H>1</H>
<B>
    <p Ccy="GBP">1</p>
 </B>
</M>
<M>
 <H>1</H>
 <B>
    <p Ccy="GBP">4</p>
 </B>
 </M>

我已经尝试过了

<?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
version="1.0" xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03">

<xsl:output indent="yes" />

 <xsl:template match="/*">
    <R>
        <M>
            <xsl:apply-templates select="M[1]/H | M/B" />
        </M>
    </R>
</xsl:template>

<xsl:template match="*">
    <xsl:element name="{local-name()}">
        <xsl:apply-templates select="@* | node()"/>
    </xsl:element>
</xsl:template>

<xsl:template match="@*">
    <xsl:copy/>
</xsl:template>

</xsl:stylesheet> 

预期产量

<?xml version="1.0"?>
<R xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03 Y:\Data\Dokument\Kommunikation\Layouter\ISO20022\Sche\Pain001\Pain.001.001.03.xsd"
 xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03">
<M>
    <H>1</H>
    <B>
        <p Ccy="GBP">1</p>
    </B>
    <B>
        <p Ccy="GBP">4</p>
    </B>
</M>

提琴https://xsltfiddle.liberty-development.net/ej9EGbG/38

我试图在标题部分添加名称空间。

0 个答案:

没有答案