0
將同一父項的同輩項拆分爲具有相同祖先的不同父項。使用xslt將同一父項的同胞拆分爲不同父項
輸入XML:
<surname>Nielsen</surname>
<given-name>M A</given-name>
<surname>Chuang</surname>
<given-name>I L</given-name>
輸出XML我想象下面這樣:
將同一父項的同輩項拆分爲具有相同祖先的不同父項。使用xslt將同一父項的同胞拆分爲不同父項
輸入XML:
<surname>Nielsen</surname>
<given-name>M A</given-name>
<surname>Chuang</surname>
<given-name>I L</given-name>
輸出XML我想象下面這樣:
嘗試此(XSLT2)
XML:
<root>
<surname>Nielsen</surname>
<given-name>M A</given-name>
<surname>Chuang</surname>
<given-name>I L</given-name>
</root>
XSLT 2.0:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes" />
<xsl:template match="root">
<xsl:copy>
<xsl:for-each-group select="*" group-starting-with="surname">
<name>
<xsl:copy-of select="current-group()" />
</name>
</xsl:for-each-group>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
輸出:
<root>
<name>
<surname>Nielsen</surname>
<given-name>M A</given-name>
</name>
<name>
<surname>Chuang</surname>
<given-name>I L</given-name>
</name>
</root>
嘗試此(XSLT1.0)
XML:
<root>
<surname>Nielsen</surname>
<given-name>M A</given-name>
<surname>Chuang</surname>
<given-name>I L</given-name>
</root>
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" />
<xsl:template match="/root">
<xsl:copy>
<xsl:for-each select="surname">
<name>
<xsl:copy-of select="."/>
<xsl:copy-of select="following-sibling::given-name[1]"/>
</name>
</xsl:for-each>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
OUTPUT:
<?xml version="1.0"?>
<root>
<name>
<surname>Nielsen</surname>
<given-name>M A</given-name>
</name>
<name>
<surname>Chuang</surname>
<given-name>I L</given-name>
</name>
</root>