XSLT 1.0-每个节点的字符串到XML

XSLT 1.0-每个节点的字符串到XML,xml,xslt,xslt-1.0,Xml,Xslt,Xslt 1.0,我需要将特定节点的内容从字符串转换为XML,用生成的XML替换该节点。此节点可以是数组。所以我可能需要为每个指令使用,但我不知道如何 我将下面的XML作为示例: <?xml version="1.0" encoding="UTF-8"?> <NodeA><NodeB>&lt;tagA xmlns="http://www.aaa.com"&gt;&lt;tagB&gt;valor1&lt;/tagB&gt;&a

我需要将特定节点的内容从字符串转换为XML,用生成的XML替换该节点。此节点可以是数组。所以我可能需要为每个指令使用,但我不知道如何

我将下面的XML作为示例:

<?xml version="1.0" encoding="UTF-8"?>
  <NodeA><NodeB>&lt;tagA xmlns="http://www.aaa.com"&gt;&lt;tagB&gt;valor1&lt;/tagB&gt;&lt;/tagA&gt;</NodeB><NodeB>&lt;tagA xmlns="http://www.aaa.com"&gt;&lt;tagB&gt;valor2&lt;/tagB&gt;&lt;/tagA&gt;</NodeB></NodeA>

塔加xmlns=”http://www.aaa.com“tagBvalor1/tagB/tagAtagA xmlns=”http://www.aaa.com“tagBvalor2/tagB/tagA
我正在使用下面的XSLT

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="xml" version="1.0" encoding="UTF-8"/>
<xsl:template match="@* | node()">
    <xsl:copy>
        <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
</xsl:template>
<xsl:template match="//NodeB">
    <xsl:value-of select="/" disable-output-escaping="yes"/>
</xsl:template>

结果是字符串被转换为XML,NodeB被替换,但它被复制,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<NodeA>
<tagA xmlns="http://www.aaa.com">
    <tagB>valor1</tagB>
</tagA>
<tagA xmlns="http://www.aaa.com">
    <tagB>valor2</tagB>
</tagA>
<tagA xmlns="http://www.aaa.com">
    <tagB>valor1</tagB>
</tagA>
<tagA xmlns="http://www.aaa.com">
    <tagB>valor2</tagB>
</tagA>
</NodeA>

瓦洛尔1
瓦洛尔2
瓦洛尔1
瓦洛尔2
我需要以下结果:

<?xml version="1.0" encoding="UTF-8"?>
<NodeA>
<tagA xmlns="http://www.aaa.com">
    <tagB>valor1</tagB>
</tagA>
<tagA xmlns="http://www.aaa.com">
    <tagB>valor2</tagB>
</tagA>
</NodeA>

瓦洛尔1
瓦洛尔2
例如,如果我在数组中有3个节点,结果将是三倍的。

我认为不是

<xsl:template match="//NodeB">
    <xsl:value-of select="/" disable-output-escaping="yes"/>
</xsl:template>

你想要

<xsl:template match="NodeB">
    <xsl:value-of select="." disable-output-escaping="yes"/>
</xsl:template>