0
我有一個複雜的需求,需要複製父節點並使其成爲其自己的父節點。它現在將成爲一個孩子節點,並且會有逃脫的角色。請看下面的示例:XSL將父節點複製爲其自己的父節點
樣品:
<Messages>
<Parameters>
<Field1>1</Field1>
<Field2>2</Field2>
</Parameters>
<Parameters>
<Field3>3</Field3>
<Field4>4</Field4>
</Parameters>
</Messages>
所需的輸出:
<Messages>
<Parameters>
<Parameters>
<Field1>1</Field1>
<Field2>2</Field2>
</Parameters>
</Parameters>
<Parameters>
<Parameters>
<Field3>3</Field3>
<Field4>4</Field4>
</Parameters>
</Parameters>
</Messages>
這可能嗎?我實際上有用於轉義字符的XSL代碼,這要歸功於另一個stackoverflow論壇答案。我不確定如何創建父節點。
謝謝! 問候, XSL新手
到目前爲止我的代碼:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
<xsl:template match="/">
<ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
<xsl:apply-templates/>
</ns0:Messages>
</xsl:template>
<xsl:template match="*">
<xsl:text disable-output-escaping="no"><</xsl:text>
<xsl:value-of select="name()"/>
<xsl:apply-templates select="@*"/>
<xsl:text disable-output-escaping="no">></xsl:text>
<xsl:apply-templates select="node()"/>
<xsl:text disable-output-escaping="no"></</xsl:text>
<xsl:value-of select="name()"/>
<xsl:text disable-output-escaping="no">></xsl:text>
</xsl:template>
<xsl:template match="@*">
<xsl:text disable-output-escaping="no"> </xsl:text>
<xsl:value-of select="name()" disable-output-escaping="no"/>
<xsl:text disable-output-escaping="yes">=&quot;</xsl:text>
<xsl:value-of select="." disable-output-escaping="no"/>
<xsl:text disable-output-escaping="yes">&quot;</xsl:text>
</xsl:template>
<xsl:template match="text()">
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="ns0:Messages">
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
我將它們添加到了原始文章中。感謝您的評論 –