0
目的は、XSLTを使用して同じ名前のネストされたXML要素タグを変更することです。私は数字やその他の方法を使ってみました。私は希望の結果を得ることができませんでした。XSLTを使用してネストされたXML要素タグを同じ名前で変更する
XML:
<?xml version="1.0" encoding="UTF-8"?>
<x>
<y>
<z value="john" designation="manager">
<z value="mike" designation="associate"></z>
<z value="dave" designation="associate"></z>
</z>
</y>
</x>
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" indent="yes" />
<xsl:strip-space elements="*" />
<xsl:template match="x">
<xsl:text>
</xsl:text>
<employees>
<xsl:apply-templates />
</employees>
</xsl:template>
<xsl:template match="y">
<employee>
<xsl:apply-templates />
</employee>
</xsl:template>
<xsl:template match="//x[y/z/@value='john' and y/z/@value='mike' and y/z/@value='dave']">
<xsl:element name="{@designation}">
<xsl:value-of select="@value"/>
</xsl:element>
</xsl:template>
望ましい結果:
<?xml version="1.0" encoding="UTF-8"?>
<employees>
<employee>
<manager>john
<associate>mike</associate>
<associate>dave</associate>
</manager>
</employee>
</employees>
1.0はあなたにマイケルをありがとう、しかし、私の目標は、マネージャのタグが関連付けタグを囲むことです。 – Kenny
@Kennyはい、階層は保持されます。インデント(またはその欠如)があなたを混乱させないようにしてください。 –
私はこれをテストし、何らかの理由でマネージャー名の後にマネージャータグが閉じられました。 – Kenny